Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68203 - in sandbox/SOC/2010/phoenix3: boost/phoenix/bind boost/phoenix/bind/preprocessed boost/phoenix/core boost/phoenix/core/detail boost/phoenix/core/detail/preprocessed boost/phoenix/core/preprocessed boost/phoenix/function/detail boost/phoenix/function/detail/preprocessed boost/phoenix/object boost/phoenix/object/detail boost/phoenix/object/detail/preprocessed boost/phoenix/operator boost/phoenix/operator/detail boost/phoenix/operator/detail/preprocessed boost/phoenix/operator/preprocessed boost/phoenix/scope/detail boost/phoenix/scope/detail/preprocessed boost/phoenix/statement/detail boost/phoenix/statement/detail/preprocessed boost/phoenix/support/detail boost/phoenix/support/preprocessor libs/phoenix/preprocess libs/phoenix/test/boost_bind_compatibility libs/phoenix/test/core libs/phoenix/test/scope libs/phoenix/test/statement
From: thom.heller_at_[hidden]
Date: 2011-01-17 03:06:18


Author: theller
Date: 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
New Revision: 68203
URL: http://svn.boost.org/trac/boost/changeset/68203

Log:
added preprocessed files
Added:
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/expression.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_10.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_20.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_30.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_40.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_50.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/boost/phoenix/support/preprocessor/
   sandbox/SOC/2010/phoenix3/boost/phoenix/support/preprocessor/round.hpp (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/preprocess/
   sandbox/SOC/2010/phoenix3/libs/phoenix/preprocess/preprocess_phoenix.cpp (contents, props changed)
Text files modified:
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind.hpp | 39 +++++-
   sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind_member_function.hpp | 40 +++++-
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp | 37 -----
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp | 37 +++++-
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp | 69 ++++++++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/expression.hpp | 239 +++++----------------------------------
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp | 60 +++++++--
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_operator.hpp | 32 ++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_result_of.hpp | 32 ++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/const_cast.hpp | 1
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/construct.hpp | 3
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/delete.hpp | 20 +-
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct.hpp | 32 ++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct_eval.hpp | 32 ++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new.hpp | 31 ++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new_eval.hpp | 32 ++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/dynamic_cast.hpp | 1
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/new.hpp | 3
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/reinterpret_cast.hpp | 1
   sandbox/SOC/2010/phoenix3/boost/phoenix/object/static_cast.hpp | 1
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp | 48 ++++++-
   sandbox/SOC/2010/phoenix3/boost/phoenix/operator/member.hpp | 55 +++++++-
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp | 36 +++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/let_local_gen.hpp | 37 +++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp | 45 ++++++-
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/make_locals.hpp | 37 +++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/catch_push_back.hpp | 37 +++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp | 37 +++++-
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_eval.hpp | 37 +++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_expression.hpp | 37 +++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/support/detail/iterate.hpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cdecl_mf_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_const_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cv_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_eq_test.cpp | 3
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_fn2_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_mf2_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_placeholder_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_rvalue_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_test.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp | 1
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp | 1
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/statement/switch_tests.cpp | 2
   46 files changed, 777 insertions(+), 402 deletions(-)

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,10 +1,16 @@
-/*==============================================================================
- 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)
-==============================================================================*/
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_BIND_BIND_HPP
+#define PHOENIX_BIND_BIND_HPP
+
+#include <boost/phoenix/function.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+#include <boost/utility/result_of.hpp>
+
+#include <boost/phoenix/bind/preprocessed/bind.hpp>
+
+#endif
+#else
 
 #if !PHOENIX_IS_ITERATING
 
@@ -15,6 +21,21 @@
 #include <boost/phoenix/support/iterate.hpp>
 #include <boost/utility/result_of.hpp>
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/bind_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+/*==============================================================================
+ 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)
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
 namespace boost { namespace phoenix
 {
     ////////////////////////////////////////////////////////////////////////////
@@ -35,6 +56,10 @@
 
 }}
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -47,3 +72,5 @@
     }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind_member_function.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind_member_function.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/bind_member_function.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,10 +1,16 @@
-/*==============================================================================
- Copyright (c) 2005-2010 Joel de Guzman
- Copyright (c) 2010 Thomas Heller
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_BIND_BIND_MEMBER_FUNCTION_HPP
+#define PHOENIX_BIND_BIND_MEMBER_FUNCTION_HPP
+
+#include <boost/phoenix/function.hpp>
+#include <boost/phoenix/core/reference.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/bind/preprocessed/bind_member_function.hpp>
+
+#endif
+#else
 
 #if !PHOENIX_IS_ITERATING
 
@@ -15,6 +21,22 @@
 #include <boost/phoenix/core/reference.hpp>
 #include <boost/phoenix/support/iterate.hpp>
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/bind_member_function_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
 namespace boost { namespace phoenix
 {
     template <typename RT, typename ClassT, typename ClassA>
@@ -44,6 +66,10 @@
 
 }}
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -138,3 +164,5 @@
     }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_BIND_PREPROCESSED_BIND)
+#define PHOENIX_BIND_PREPROCESSED_BIND
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/bind/preprocessed/bind_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/bind/preprocessed/bind_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/bind/preprocessed/bind_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/bind/preprocessed/bind_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/bind/preprocessed/bind_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,160 @@
+/*==============================================================================
+ 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)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+
+
+
+
+ template <typename F>
+ typename result_of::function<F>::type
+ bind(F f)
+ {
+ return function<F>(f)();
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ typename result_of::function<F, A0>::type const
+ bind(F f, A0 const& a0)
+ {
+ return function<F>(f)(a0);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ bind(F f, A0 const& a0 , A1 const& a1)
+ {
+ return function<F>(f)(a0 , a1);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return function<F>(f)(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,300 @@
+/*==============================================================================
+ 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)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+
+
+
+
+ template <typename F>
+ typename result_of::function<F>::type
+ bind(F f)
+ {
+ return function<F>(f)();
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ typename result_of::function<F, A0>::type const
+ bind(F f, A0 const& a0)
+ {
+ return function<F>(f)(a0);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ bind(F f, A0 const& a0 , A1 const& a1)
+ {
+ return function<F>(f)(a0 , a1);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return function<F>(f)(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,440 @@
+/*==============================================================================
+ 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)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+
+
+
+
+ template <typename F>
+ typename result_of::function<F>::type
+ bind(F f)
+ {
+ return function<F>(f)();
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ typename result_of::function<F, A0>::type const
+ bind(F f, A0 const& a0)
+ {
+ return function<F>(f)(a0);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ bind(F f, A0 const& a0 , A1 const& a1)
+ {
+ return function<F>(f)(a0 , a1);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return function<F>(f)(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::function<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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::function<F, 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::function<F, A0 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::function<F, A0 , A1 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::function<F, A0 , A1 , A2 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::function<F, A0 , A1 , A2 , A3 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,580 @@
+/*==============================================================================
+ 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)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+
+
+
+
+ template <typename F>
+ typename result_of::function<F>::type
+ bind(F f)
+ {
+ return function<F>(f)();
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ typename result_of::function<F, A0>::type const
+ bind(F f, A0 const& a0)
+ {
+ return function<F>(f)(a0);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ bind(F f, A0 const& a0 , A1 const& a1)
+ {
+ return function<F>(f)(a0 , a1);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return function<F>(f)(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::function<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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::function<F, 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::function<F, A0 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::function<F, A0 , A1 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::function<F, A0 , A1 , A2 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::function<F, A0 , A1 , A2 , A3 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/bind/preprocessed/bind_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,720 @@
+/*==============================================================================
+ 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)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+
+
+
+
+ template <typename F>
+ typename result_of::function<F>::type
+ bind(F f)
+ {
+ return function<F>(f)();
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ typename result_of::function<F, A0>::type const
+ bind(F f, A0 const& a0)
+ {
+ return function<F>(f)(a0);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ bind(F f, A0 const& a0 , A1 const& a1)
+ {
+ return function<F>(f)(a0 , a1);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return function<F>(f)(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::function<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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::function<F, 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::function<F, A0 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::function<F, A0 , A1 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::function<F, A0 , A1 , A2 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::function<F, A0 , A1 , A2 , A3 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return function<F>(f)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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: sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -42,41 +42,8 @@
         };
     }
 
- namespace result_of
- {
- template <typename Expr
- , PHOENIX_typename_A_void(PHOENIX_ACTOR_LIMIT)
- , typename Dummy = void>
- struct actor;
-
- template <typename Expr>
- struct nullary_actor_result
- {
- typedef
- typename evaluator::impl<
- Expr const&
- , fusion::vector2<fusion::vector0<>&, default_actions>&
- , int
- >::result_type
- type;
- };
-
- template <typename Expr>
- struct actor<Expr>
- {
- typedef
- // avoid calling result_of::actor when this is false
- typename mpl::eval_if<
- typename result_of::is_nullary<Expr>::type
- , nullary_actor_result<Expr>
- , mpl::identity<detail::error_expecting_arguments>
- >::type
- type;
- };
-
- // Bring in the rest
- #include <boost/phoenix/core/detail/actor_result_of.hpp>
- }
+ // Bring in the result_of::actor<>
+ #include <boost/phoenix/core/detail/actor_result_of.hpp>
 
     ////////////////////////////////////////////////////////////////////////////
     //

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,10 +1,14 @@
-/*==============================================================================
- Copyright (c) 2005-2010 Joel de Guzman
- Copyright (c) 2010 Thomas Heller
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP
+#define PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/core/detail/preprocessed/actor_operator.hpp>
+
+#endif
+#else
 
 #if !PHOENIX_IS_ITERATING
 
@@ -13,11 +17,30 @@
 
 #include <boost/phoenix/support/iterate.hpp>
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/actor_operator_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
 #define PHOENIX_ITERATION_PARAMS \
         (3, (1, PHOENIX_ACTOR_LIMIT, \
         <boost/phoenix/core/detail/actor_operator.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -141,3 +164,5 @@
 #endif
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
+#define PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/core/detail/preprocessed/actor_result_of.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
+#define PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/actor_result_of_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,20 +29,55 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
-#ifndef PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
-#define PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
+ namespace result_of
+ {
+ template <typename Expr
+ , PHOENIX_typename_A_void(PHOENIX_ACTOR_LIMIT)
+ , typename Dummy = void>
+ struct actor;
 
-#include <boost/phoenix/support/iterate.hpp>
+ template <typename Expr>
+ struct nullary_actor_result
+ {
+ typedef
+ typename evaluator::impl<
+ Expr const&
+ , fusion::vector2<fusion::vector0<>&, default_actions>&
+ , int
+ >::result_type
+ type;
+ };
+
+ template <typename Expr>
+ struct actor<Expr>
+ {
+ typedef
+ // avoid calling result_of::actor when this is false
+ typename mpl::eval_if<
+ typename result_of::is_nullary<Expr>::type
+ , nullary_actor_result<Expr>
+ , mpl::identity<detail::error_expecting_arguments>
+ >::type
+ type;
+ };
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (1, PHOENIX_ACTOR_LIMIT, \
     <boost/phoenix/core/detail/actor_result_of.hpp>))
 #include PHOENIX_ITERATE()
 
+ }
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
-
+
 #else
 
         template <typename Expr, PHOENIX_typename_A>
@@ -43,3 +101,4 @@
 
 #endif
 
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/expression.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/expression.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,223 @@
+/*=============================================================================
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef PHOENIX_CORE_DETAIL_EXPRESSION_HPP
+#define PHOENIX_CORE_DETAIL_EXPRESSION_HPP
+
+#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/arithmetic/add.hpp>
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/comma_if.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/enum.hpp>
+#include <boost/preprocessor/seq/pop_back.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/enum_params.hpp>
+#include <boost/preprocessor/repeat_from_to.hpp>
+
+#define PHOENIX_DEFINE_EXPRESSION(NAME, SEQ) \
+ namespace tag { \
+ struct NAME {}; \
+ } \
+ \
+ namespace expression \
+ { \
+ template <BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), typename A)> \
+ struct NAME \
+ : expr<tag:: NAME, BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), A)> \
+ {}; \
+ } \
+ \
+ namespace rule { \
+ struct NAME \
+ : expression:: NAME <BOOST_PP_SEQ_ENUM(SEQ)> \
+ {}; \
+ } \
+ \
+ template <typename Dummy> \
+ struct meta_grammar::case_<tag:: NAME, Dummy> \
+ : proto::when<rule:: NAME, proto::external_transform> \
+ {}; \
+ /**/
+
+#define PHOENIX_DEFINE_EXPRESSION_VARARG_R(_, N, NAME) \
+ template < \
+ PHOENIX_typename_A( \
+ BOOST_PP_ADD( \
+ N \
+ , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 1, NAME)) \
+ ) \
+ ) \
+ > \
+ struct BOOST_PP_TUPLE_ELEM(2, 0, NAME)< \
+ PHOENIX_A( \
+ BOOST_PP_ADD(N, BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 1, NAME))) \
+ ) \
+ > \
+ : expr< \
+ tag:: BOOST_PP_TUPLE_ELEM(2, 0, NAME) \
+ , PHOENIX_A( \
+ BOOST_PP_ADD( \
+ N \
+ , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 1, NAME)) \
+ ) \
+ ) \
+ > \
+ {}; \
+/**/
+
+#define PHOENIX_DEFINE_EXPRESSION_VARARG(NAME, GRAMMAR, LIMIT) \
+ namespace tag { \
+ struct NAME {}; \
+ } \
+ \
+ namespace expression \
+ { \
+ template < \
+ PHOENIX_typename_A_void( \
+ BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
+ ) \
+ , typename Dummy = void \
+ > \
+ struct NAME; \
+ \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 1 \
+ , BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
+ , PHOENIX_DEFINE_EXPRESSION_VARARG_R \
+ , (NAME, BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
+ ) \
+ } \
+ \
+ namespace rule { \
+ struct NAME \
+ : expression:: NAME < \
+ BOOST_PP_IF( \
+ BOOST_PP_EQUAL(1, BOOST_PP_SEQ_SIZE(GRAMMAR)) \
+ , BOOST_PP_EMPTY() \
+ , BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
+ ) \
+ BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
+ proto::vararg< \
+ BOOST_PP_SEQ_ELEM( \
+ BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR)) \
+ , GRAMMAR \
+ ) \
+ > \
+ > \
+ {}; \
+ } \
+ \
+ template <typename Dummy> \
+ struct meta_grammar::case_<tag:: NAME, Dummy> \
+ : proto::when<rule:: NAME, proto::external_transform> \
+ {}; \
+/**/
+
+#define PHOENIX_DEFINE_EXPRESSION_EXT(ACTOR, NAME, SEQ) \
+ namespace tag { \
+ struct NAME {}; \
+ } \
+ \
+ namespace expression \
+ { \
+ template <BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), typename A)> \
+ struct NAME \
+ : expr_ext< \
+ ACTOR \
+ , tag:: NAME, BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), A)> \
+ {}; \
+ } \
+ \
+ namespace rule { \
+ struct NAME \
+ : expression:: NAME <BOOST_PP_SEQ_ENUM(SEQ)> \
+ {}; \
+ } \
+ \
+ template <typename Dummy> \
+ struct meta_grammar::case_<tag:: NAME, Dummy> \
+ : proto::when<rule:: NAME, proto::external_transform> \
+ {}; \
+/**/
+
+#define PHOENIX_DEFINE_EXPRESSION_EXT_VARARG_R(_, N, NAME) \
+ template < \
+ PHOENIX_typename_A( \
+ BOOST_PP_ADD( \
+ N \
+ , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 1, NAME)) \
+ ) \
+ ) \
+ > \
+ struct BOOST_PP_TUPLE_ELEM(3, 0, NAME)< \
+ PHOENIX_A( \
+ BOOST_PP_ADD(N, BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 1, NAME))) \
+ ) \
+ > \
+ : expr_ext< \
+ BOOST_PP_TUPLE_ELEM(3, 2, NAME) \
+ , tag:: BOOST_PP_TUPLE_ELEM(3, 0, NAME) \
+ , PHOENIX_A( \
+ BOOST_PP_ADD( \
+ N \
+ , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 1, NAME)) \
+ ) \
+ ) \
+ > \
+ {}; \
+
+#define PHOENIX_DEFINE_EXPRESSION_EXT_VARARG(ACTOR, NAME, GRAMMAR, LIMIT) \
+ namespace tag { \
+ struct NAME {}; \
+ } \
+ \
+ namespace expression \
+ { \
+ template < \
+ PHOENIX_typename_A_void( \
+ BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
+ ) \
+ , typename Dummy = void \
+ > \
+ struct NAME; \
+ \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 1 \
+ , BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
+ , PHOENIX_DEFINE_EXPRESSION_EXT_VARARG_R \
+ , (NAME, BOOST_PP_SEQ_POP_BACK(GRAMMAR), ACTOR) \
+ ) \
+ } \
+ \
+ namespace rule { \
+ struct NAME \
+ : expression:: NAME < \
+ BOOST_PP_IF( \
+ BOOST_PP_EQUAL(1, BOOST_PP_SEQ_SIZE(GRAMMAR)) \
+ , BOOST_PP_EMPTY() \
+ , BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
+ ) \
+ BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
+ proto::vararg< \
+ BOOST_PP_SEQ_ELEM( \
+ BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR)) \
+ , GRAMMAR \
+ ) \
+ > \
+ > \
+ {}; \
+ } \
+ \
+ template <typename Dummy> \
+ struct meta_grammar::case_<tag:: NAME, Dummy> \
+ : proto::when<rule:: NAME, proto::external_transform> \
+ {}; \
+/**/
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_ACTOR_OPERATOR)
+#define PHOENIX_PREPROCESSED_ACTOR_OPERATOR
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,583 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ : result_of::actor<Expr, A0>
+ {};
+ template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) const { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) const { typedef typename fusion::result_of::make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) { typedef typename fusion::result_of::
make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ : result_of::actor<Expr, A0 , A1>
+ {};
+ template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } templa
te <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env);
 } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ : result_of::actor<Expr, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(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
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , 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
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , 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
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1273 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ : result_of::actor<Expr, A0>
+ {};
+ template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) const { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) const { typedef typename fusion::result_of::make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) { typedef typename fusion::result_of::
make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ : result_of::actor<Expr, A0 , A1>
+ {};
+ template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } templa
te <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env);
 } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ : result_of::actor<Expr, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(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
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , 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
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , 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
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1963 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ : result_of::actor<Expr, A0>
+ {};
+ template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) const { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) const { typedef typename fusion::result_of::make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) { typedef typename fusion::result_of::
make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ : result_of::actor<Expr, A0 , A1>
+ {};
+ template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } templa
te <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env);
 } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ : result_of::actor<Expr, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(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
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , 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
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , 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
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector21<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
+ 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
+ {
+ typedef
+ fusion::vector21<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector21<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector21<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector22<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
+ 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
+ {
+ typedef
+ fusion::vector22<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector22<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector22<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22)>
+ : result_of::actor<Expr, 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::actor<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
+ 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)
+ {
+ typedef
+ fusion::vector23<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector23<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector23<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector23<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector24<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector24<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector24<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector24<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector25<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector25<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector25<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector25<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector26<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector26<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector26<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector26<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector27<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector27<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector27<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector27<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector28<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector28<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector28<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector28<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector29<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector29<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector29<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector29<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector30<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector30<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector30<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector30<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2653 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ : result_of::actor<Expr, A0>
+ {};
+ template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) const { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) const { typedef typename fusion::result_of::make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) { typedef typename fusion::result_of::
make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ : result_of::actor<Expr, A0 , A1>
+ {};
+ template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } templa
te <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env);
 } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ : result_of::actor<Expr, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(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
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , 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
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , 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
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector21<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
+ 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
+ {
+ typedef
+ fusion::vector21<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector21<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector21<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector22<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
+ 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
+ {
+ typedef
+ fusion::vector22<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector22<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector22<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22)>
+ : result_of::actor<Expr, 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::actor<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
+ 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)
+ {
+ typedef
+ fusion::vector23<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector23<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector23<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector23<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector24<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector24<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector24<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector24<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector25<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector25<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector25<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector25<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector26<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector26<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector26<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector26<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector27<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector27<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector27<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector27<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector28<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector28<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector28<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector28<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector29<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector29<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector29<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector29<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector30<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector30<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector30<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector30<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector31<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector31<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector31<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector31<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector32<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector32<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector32<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector32<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector33<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector33<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector33<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector33<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector34<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector34<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector34<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector34<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector35<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector35<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector35<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector35<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector36<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector36<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector36<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector36<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector37<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector37<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector37<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector37<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector38<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector38<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector38<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector38<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector39<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector39<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector39<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector39<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector40<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector40<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector40<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector40<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,3343 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ : result_of::actor<Expr, A0>
+ {};
+ template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) const { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 &>::type operator()(A0 & a0) { typedef typename fusion::result_of::make_vector<A0 &>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) const { typedef typename fusion::result_of::make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0> typename result_of::actor<Expr, A0 const&>::type operator()(A0 const& a0) { typedef typename fusion::result_of::
make_vector<A0 const&>::type args_type; args_type args(a0); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ : result_of::actor<Expr, A0 , A1>
+ {};
+ template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } templa
te <typename A0 , typename A1> typename result_of::actor<Expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 & , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 &>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env);
 } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) const { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); } template <typename A0 , typename A1> typename result_of::actor<Expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) { typedef typename fusion::result_of::make_vector<A0 const& , A1 const&>::type args_type; args_type args(a0 , a1); fusion::vector2< args_type&, default_actions > env(args, default_actions()); return eval(*this, env); }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ : result_of::actor<Expr, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 & , A1 & , A2 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ typedef
+ fusion::vector3<
+ A0 const& , A1 const& , A2 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 & , A1 & , A2 & , A3 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ typedef
+ fusion::vector4<
+ A0 const& , A1 const& , A2 const& , A3 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 & , A1 & , A2 & , A3 & , A4 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ typedef
+ fusion::vector5<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ : result_of::actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ typedef
+ fusion::vector6<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ typedef
+ fusion::vector7<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ typedef
+ fusion::vector8<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
+ operator()(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
+ {
+ typedef
+ fusion::vector8<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ typedef
+ fusion::vector9<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename result_of::actor<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
+ operator()(A0 const& a0 , 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
+ {
+ typedef
+ fusion::vector9<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
+ {
+ typedef
+ fusion::vector10<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , 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
+ {
+ typedef
+ fusion::vector10<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
+ {
+ typedef
+ fusion::vector11<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ typedef
+ fusion::vector11<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
+ 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
+ {
+ typedef
+ fusion::vector12<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename 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<Expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ typedef
+ fusion::vector12<
+ A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
+ 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
+ {
+ typedef
+ fusion::vector13<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ typedef
+ fusion::vector13<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
+ 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
+ {
+ typedef
+ fusion::vector14<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ typedef
+ fusion::vector14<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
+ 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
+ {
+ typedef
+ fusion::vector15<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ typedef
+ fusion::vector15<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
+ 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
+ {
+ typedef
+ fusion::vector16<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ typedef
+ fusion::vector16<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
+ 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
+ {
+ typedef
+ fusion::vector17<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ typedef
+ fusion::vector17<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
+ 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
+ {
+ typedef
+ fusion::vector18<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ typedef
+ fusion::vector18<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
+ 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
+ {
+ typedef
+ fusion::vector19<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector19<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
+ 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
+ {
+ typedef
+ fusion::vector20<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector20<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector21<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
+ 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
+ {
+ typedef
+ fusion::vector21<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector21<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector21<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21)>
+ : result_of::actor<Expr, 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::actor<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
+ 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)
+ {
+ typedef
+ fusion::vector22<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
+ 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
+ {
+ typedef
+ fusion::vector22<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector22<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector22<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22)>
+ : result_of::actor<Expr, 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::actor<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
+ 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)
+ {
+ typedef
+ fusion::vector23<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector23<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector23<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector23<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector24<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector24<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector24<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector24<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector25<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector25<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector25<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector25<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector26<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector26<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector26<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector26<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector27<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector27<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector27<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector27<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector28<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector28<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector28<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector28<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector29<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector29<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector29<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector29<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector30<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector30<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector30<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector30<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector31<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector31<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector31<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector31<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector32<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector32<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector32<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector32<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector33<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector33<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector33<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector33<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector34<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector34<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector34<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector34<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector35<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector35<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector35<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector35<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector36<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector36<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector36<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector36<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector37<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector37<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector37<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector37<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector38<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector38<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector38<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector38<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector39<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector39<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector39<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector39<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector40<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector40<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector40<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector40<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector41<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector41<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector41<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector41<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector42<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector42<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector42<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector42<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector43<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector43<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector43<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector43<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector44<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector44<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector44<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector44<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector45<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector45<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector45<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector45<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector46<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector46<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector46<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector46<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector47<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector47<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector47<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector47<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector48<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector48<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector48<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector48<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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)
+ {
+ typedef
+ fusion::vector49<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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
+ {
+ typedef
+ fusion::vector49<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector49<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector49<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ : result_of::actor<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>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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 , A49 & a49)
+ {
+ typedef
+ fusion::vector50<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<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
+ 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 , A49 & a49) const
+ {
+ typedef
+ fusion::vector50<
+ A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ typedef
+ fusion::vector50<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+
+ return eval(*this, env);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<Expr, 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&>::type
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ typedef
+ fusion::vector50<
+ 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&
+ >
+ args_type;
+ args_type args(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ fusion::vector2<args_type&, default_actions>
+ env(args, default_actions());
+ return eval(*this, env);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_ACTOR_RESULT_OF)
+#define PHOENIX_PREPROCESSED_ACTOR_RESULT_OF
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,257 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+ namespace result_of
+ {
+ template <typename Expr
+ , 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 actor;
+ template <typename Expr>
+ struct nullary_actor_result
+ {
+ typedef
+ typename evaluator::impl<
+ Expr const&
+ , fusion::vector2<fusion::vector0<>&, default_actions>&
+ , int
+ >::result_type
+ type;
+ };
+ template <typename Expr>
+ struct actor<Expr>
+ {
+ typedef
+
+ typename mpl::eval_if<
+ typename result_of::is_nullary<Expr>::type
+ , nullary_actor_result<Expr>
+ , mpl::identity<detail::error_expecting_arguments>
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0>
+ struct actor<Expr, A0>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector1<A0>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1>
+ struct actor<Expr, A0 , A1>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector2<A0 , A1>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2>
+ struct actor<Expr, A0 , A1 , A2>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector3<A0 , A1 , A2>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3>
+ struct actor<Expr, A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector4<A0 , A1 , A2 , A3>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,477 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+ namespace result_of
+ {
+ template <typename Expr
+ , 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 actor;
+ template <typename Expr>
+ struct nullary_actor_result
+ {
+ typedef
+ typename evaluator::impl<
+ Expr const&
+ , fusion::vector2<fusion::vector0<>&, default_actions>&
+ , int
+ >::result_type
+ type;
+ };
+ template <typename Expr>
+ struct actor<Expr>
+ {
+ typedef
+
+ typename mpl::eval_if<
+ typename result_of::is_nullary<Expr>::type
+ , nullary_actor_result<Expr>
+ , mpl::identity<detail::error_expecting_arguments>
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0>
+ struct actor<Expr, A0>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector1<A0>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1>
+ struct actor<Expr, A0 , A1>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector2<A0 , A1>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2>
+ struct actor<Expr, A0 , A1 , A2>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector3<A0 , A1 , A2>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3>
+ struct actor<Expr, A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector4<A0 , A1 , A2 , A3>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,697 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+ namespace result_of
+ {
+ template <typename Expr
+ , 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 actor;
+ template <typename Expr>
+ struct nullary_actor_result
+ {
+ typedef
+ typename evaluator::impl<
+ Expr const&
+ , fusion::vector2<fusion::vector0<>&, default_actions>&
+ , int
+ >::result_type
+ type;
+ };
+ template <typename Expr>
+ struct actor<Expr>
+ {
+ typedef
+
+ typename mpl::eval_if<
+ typename result_of::is_nullary<Expr>::type
+ , nullary_actor_result<Expr>
+ , mpl::identity<detail::error_expecting_arguments>
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0>
+ struct actor<Expr, A0>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector1<A0>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1>
+ struct actor<Expr, A0 , A1>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector2<A0 , A1>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2>
+ struct actor<Expr, A0 , A1 , A2>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector3<A0 , A1 , A2>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3>
+ struct actor<Expr, A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector4<A0 , A1 , A2 , A3>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector21<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector22<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector23<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector24<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector25<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector26<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector27<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector28<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector29<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector30<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,917 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+ namespace result_of
+ {
+ template <typename Expr
+ , 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 A37 = void , typename A38 = void , typename A39 = void
+ , typename Dummy = void>
+ struct actor;
+ template <typename Expr>
+ struct nullary_actor_result
+ {
+ typedef
+ typename evaluator::impl<
+ Expr const&
+ , fusion::vector2<fusion::vector0<>&, default_actions>&
+ , int
+ >::result_type
+ type;
+ };
+ template <typename Expr>
+ struct actor<Expr>
+ {
+ typedef
+
+ typename mpl::eval_if<
+ typename result_of::is_nullary<Expr>::type
+ , nullary_actor_result<Expr>
+ , mpl::identity<detail::error_expecting_arguments>
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0>
+ struct actor<Expr, A0>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector1<A0>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1>
+ struct actor<Expr, A0 , A1>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector2<A0 , A1>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2>
+ struct actor<Expr, A0 , A1 , A2>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector3<A0 , A1 , A2>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3>
+ struct actor<Expr, A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector4<A0 , A1 , A2 , A3>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector21<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector22<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector23<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector24<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector25<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector26<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector27<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector28<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector29<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector30<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector31<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector32<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector33<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector34<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector35<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector36<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector37<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector38<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector39<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector40<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1137 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+ namespace result_of
+ {
+ template <typename Expr
+ , 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 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 , typena
me A46 = void , typename A47 = void , typename A48 = void , typename A49 = void
+ , typename Dummy = void>
+ struct actor;
+ template <typename Expr>
+ struct nullary_actor_result
+ {
+ typedef
+ typename evaluator::impl<
+ Expr const&
+ , fusion::vector2<fusion::vector0<>&, default_actions>&
+ , int
+ >::result_type
+ type;
+ };
+ template <typename Expr>
+ struct actor<Expr>
+ {
+ typedef
+
+ typename mpl::eval_if<
+ typename result_of::is_nullary<Expr>::type
+ , nullary_actor_result<Expr>
+ , mpl::identity<detail::error_expecting_arguments>
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0>
+ struct actor<Expr, A0>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector1<A0>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1>
+ struct actor<Expr, A0 , A1>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector2<A0 , A1>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2>
+ struct actor<Expr, A0 , A1 , A2>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector3<A0 , A1 , A2>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3>
+ struct actor<Expr, A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector4<A0 , A1 , A2 , A3>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector21<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector22<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector23<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector24<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector25<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector26<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector27<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector28<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector29<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector30<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector31<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector32<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector33<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector34<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector35<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector36<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector37<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector38<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector39<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector40<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector41<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector42<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector43<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector44<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector45<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector46<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector47<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector48<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector49<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 actor<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>
+ {
+ typedef
+ typename phoenix::evaluator::
+ impl<
+ Expr const&
+ , fusion::vector2<
+ fusion::vector50<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ , default_actions
+ >
+ , int
+ >::result_type
+ type;
+ };
+ }

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/expression.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/expression.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/expression.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,6 +1,30 @@
 
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_CORE_EXPRESSION_HPP
+#define PHOENIX_CORE_EXPRESSION_HPP
+
+#include <boost/phoenix/core/detail/expression.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+
+#include <boost/phoenix/core/preprocessed/expression.hpp>
+
+#endif
+#else
+
 #if !PHOENIX_IS_ITERATING
 
+#ifndef PHOENIX_CORE_EXPRESSION_HPP
+#define PHOENIX_CORE_EXPRESSION_HPP
+
+#include <boost/phoenix/core/detail/expression.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/expression_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*=============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Eric Niebler
@@ -9,11 +33,10 @@
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#ifndef PHOENIX_CORE_EXPRESSION_HPP
-#define PHOENIX_CORE_EXPRESSION_HPP
 
-#include <boost/phoenix/support/iterate.hpp>
-#include <boost/preprocessor/comparison/equal.hpp>
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 namespace boost { namespace phoenix
 {
@@ -26,12 +49,12 @@
       , typename Dummy = void>
     struct expr_ext;
 
- template <
+ template <
         typename Tag
       , PHOENIX_typename_A_void(PHOENIX_COMPOSITE_LIMIT)
       , typename Dummy = void
>
- struct expr : expr_ext<actor, Tag, PHOENIX_A(PHOENIX_COMPOSITE_LIMIT)> {};
+ struct expr : expr_ext<actor, Tag, PHOENIX_A(PHOENIX_COMPOSITE_LIMIT)> {};
 
     struct default_domain_with_basic_expr
         : proto::domain<proto::use_basic_expr<proto::default_generator> >
@@ -45,205 +68,9 @@
 
 }}
 
-#define PHOENIX_DEFINE_EXPRESSION(NAME, SEQ) \
- namespace tag { \
- struct NAME {}; \
- } \
- \
- namespace expression \
- { \
- template <BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), typename A)> \
- struct NAME \
- : expr<tag:: NAME, BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), A)> \
- {}; \
- } \
- \
- namespace rule { \
- struct NAME \
- : expression:: NAME <BOOST_PP_SEQ_ENUM(SEQ)> \
- {}; \
- } \
- \
- template <typename Dummy> \
- struct meta_grammar::case_<tag:: NAME, Dummy> \
- : proto::when<rule:: NAME, proto::external_transform> \
- {}; \
- /**/
-
-#define PHOENIX_DEFINE_EXPRESSION_VARARG_R(_, N, NAME) \
- template < \
- PHOENIX_typename_A( \
- BOOST_PP_ADD( \
- N \
- , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 1, NAME)) \
- ) \
- ) \
- > \
- struct BOOST_PP_TUPLE_ELEM(2, 0, NAME)< \
- PHOENIX_A( \
- BOOST_PP_ADD(N, BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 1, NAME))) \
- ) \
- > \
- : expr< \
- tag:: BOOST_PP_TUPLE_ELEM(2, 0, NAME) \
- , PHOENIX_A( \
- BOOST_PP_ADD( \
- N \
- , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 1, NAME)) \
- ) \
- ) \
- > \
- {}; \
-/**/
-
-#define PHOENIX_DEFINE_EXPRESSION_VARARG(NAME, GRAMMAR, LIMIT) \
- namespace tag { \
- struct NAME {}; \
- } \
- \
- namespace expression \
- { \
- template < \
- PHOENIX_typename_A_void( \
- BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
- ) \
- , typename Dummy = void \
- > \
- struct NAME; \
- \
- BOOST_PP_REPEAT_FROM_TO( \
- 1 \
- , BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
- , PHOENIX_DEFINE_EXPRESSION_VARARG_R \
- , (NAME, BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
- ) \
- } \
- \
- namespace rule { \
- struct NAME \
- : expression:: NAME < \
- BOOST_PP_IF( \
- BOOST_PP_EQUAL(1, BOOST_PP_SEQ_SIZE(GRAMMAR)) \
- , BOOST_PP_EMPTY() \
- , BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
- ) \
- BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
- proto::vararg< \
- BOOST_PP_SEQ_ELEM( \
- BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR)) \
- , GRAMMAR \
- ) \
- > \
- > \
- {}; \
- } \
- \
- template <typename Dummy> \
- struct meta_grammar::case_<tag:: NAME, Dummy> \
- : proto::when<rule:: NAME, proto::external_transform> \
- {}; \
-/**/
-
-#define PHOENIX_DEFINE_EXPRESSION_EXT(ACTOR, NAME, SEQ) \
- namespace tag { \
- struct NAME {}; \
- } \
- \
- namespace expression \
- { \
- template <BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), typename A)> \
- struct NAME \
- : expr_ext< \
- ACTOR \
- , tag:: NAME, BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SEQ), A)> \
- {}; \
- } \
- \
- namespace rule { \
- struct NAME \
- : expression:: NAME <BOOST_PP_SEQ_ENUM(SEQ)> \
- {}; \
- } \
- \
- template <typename Dummy> \
- struct meta_grammar::case_<tag:: NAME, Dummy> \
- : proto::when<rule:: NAME, proto::external_transform> \
- {}; \
-/**/
-
-#define PHOENIX_DEFINE_EXPRESSION_EXT_VARARG_R(_, N, NAME) \
- template < \
- PHOENIX_typename_A( \
- BOOST_PP_ADD( \
- N \
- , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 1, NAME)) \
- ) \
- ) \
- > \
- struct BOOST_PP_TUPLE_ELEM(3, 0, NAME)< \
- PHOENIX_A( \
- BOOST_PP_ADD(N, BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 1, NAME))) \
- ) \
- > \
- : expr_ext< \
- BOOST_PP_TUPLE_ELEM(3, 2, NAME) \
- , tag:: BOOST_PP_TUPLE_ELEM(3, 0, NAME) \
- , PHOENIX_A( \
- BOOST_PP_ADD( \
- N \
- , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 1, NAME)) \
- ) \
- ) \
- > \
- {}; \
-
-#define PHOENIX_DEFINE_EXPRESSION_EXT_VARARG(ACTOR, NAME, GRAMMAR, LIMIT) \
- namespace tag { \
- struct NAME {}; \
- } \
- \
- namespace expression \
- { \
- template < \
- PHOENIX_typename_A_void( \
- BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
- ) \
- , typename Dummy = void \
- > \
- struct NAME; \
- \
- BOOST_PP_REPEAT_FROM_TO( \
- 1 \
- , BOOST_PP_ADD(LIMIT, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
- , PHOENIX_DEFINE_EXPRESSION_EXT_VARARG_R \
- , (NAME, BOOST_PP_SEQ_POP_BACK(GRAMMAR), ACTOR) \
- ) \
- } \
- \
- namespace rule { \
- struct NAME \
- : expression:: NAME < \
- BOOST_PP_IF( \
- BOOST_PP_EQUAL(1, BOOST_PP_SEQ_SIZE(GRAMMAR)) \
- , BOOST_PP_EMPTY() \
- , BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
- ) \
- BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
- proto::vararg< \
- BOOST_PP_SEQ_ELEM( \
- BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR)) \
- , GRAMMAR \
- ) \
- > \
- > \
- {}; \
- } \
- \
- template <typename Dummy> \
- struct meta_grammar::case_<tag:: NAME, Dummy> \
- : proto::when<rule:: NAME, proto::external_transform> \
- {}; \
-/**/
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
 
 #endif
 
@@ -292,3 +119,5 @@
     };
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -10,25 +10,35 @@
 #include <boost/preprocessor/arithmetic/add.hpp>
 #include <boost/preprocessor/inc.hpp>
 #include <boost/preprocessor/dec.hpp>
+#include <boost/preprocessor/stringize.hpp>
+#include <boost/phoenix/support/preprocessor/round.hpp>
+
+
 
 #if !defined(PHOENIX_LIMIT)
-# define PHOENIX_LIMIT 5
+# define PHOENIX_LIMIT 10
 #elif (PHOENIX_LIMIT < 5)
 # error "PHOENIX_LIMIT is set too low"
 #endif
 
+#define PHOENIX_LIMIT_STR BOOST_PP_STRINGIZE(BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT))
+
 #if !defined(PHOENIX_ARG_LIMIT)
-# define PHOENIX_ARG_LIMIT PHOENIX_LIMIT
+# define PHOENIX_ARG_LIMIT BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
 #elif (PHOENIX_ARG_LIMIT < 5)
 # error "PHOENIX_ARG_LIMIT is set too low"
+#elif PHOENIX_ARG_LIMIT != BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(PHOENIX_ACTOR_LIMIT)
-# define PHOENIX_ACTOR_LIMIT PHOENIX_LIMIT
+# define PHOENIX_ACTOR_LIMIT BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
 #elif (PHOENIX_ACTOR_LIMIT > PHOENIX_ARG_LIMIT)
 # error "PHOENIX_ACTOR_LIMIT > PHOENIX_ARG_LIMIT"
 #elif (PHOENIX_ACTOR_LIMIT < 3)
 # error "PHOENIX_ACTOR_LIMIT is set too low"
+#elif PHOENIX_ACTOR_LIMIT != BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(PHOENIX_PERFECT_FORWARD_LIMIT)
@@ -37,12 +47,16 @@
 # error "PHOENIX_PERFECT_FORWARD_LIMIT > PHOENIX_ACTOR_LIMIT"
 #elif (PHOENIX_PERFECT_FORWARD_LIMIT < 3)
 # error "PHOENIX_PERFECT_FORWARD_LIMIT is set too low"
+#elif PHOENIX_PERFECT_FORWARD_LIMIT != 3 && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(PHOENIX_COMPOSITE_LIMIT)
-# define PHOENIX_COMPOSITE_LIMIT PHOENIX_LIMIT
+# define PHOENIX_COMPOSITE_LIMIT BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
 #elif (PHOENIX_COMPOSITE_LIMIT < 5)
 # error "PHOENIX_COMPOSITE_LIMIT is set too low"
+#elif PHOENIX_COMPOSITE_LIMIT != BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(PHOENIX_MEMBER_LIMIT)
@@ -51,30 +65,38 @@
 # error "PHOENIX_MEMBER_LIMIT > PHOENIX_COMPOSITE_LIMIT"
 #elif (PHOENIX_MEMBER_LIMIT < 3)
 # error "PHOENIX_MEMBER_LIMIT is set too low"
+#elif PHOENIX_MEMBER_LIMIT != BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(PHOENIX_CATCH_LIMIT)
 # define PHOENIX_CATCH_LIMIT PHOENIX_COMPOSITE_LIMIT
 #elif (PHOENIX_CATCH_LIMIT < 1)
 # error "PHOENIX_CATCH_LIMIT is set too low"
+#elif PHOENIX_CATCH_LIMIT != BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(PHOENIX_DYNAMIC_LIMIT)
-# define PHOENIX_DYNAMIC_LIMIT PHOENIX_LIMIT
+# define PHOENIX_DYNAMIC_LIMIT BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
 #elif (PHOENIX_DYNAMIC_LIMIT < 1)
 # error "PHOENIX_DYNAMIC_LIMIT is set too low"
+#elif PHOENIX_DYNAMIC_LIMIT != BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(PHOENIX_LOCAL_LIMIT)
-# define PHOENIX_LOCAL_LIMIT PHOENIX_LIMIT
+# define PHOENIX_LOCAL_LIMIT BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
 #elif (PHOENIX_LOCAL_LIMIT < 3)
 # error "PHOENIX_LOCAL_LIMIT is set too low"
+#elif PHOENIX_LOCAL_LIMIT != BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) && !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+# define PHOENIX_DONT_USE_PREPROCESSED_FILES
 #endif
 
 #if !defined(FUSION_MAX_VECTOR_SIZE)
-# define FUSION_MAX_VECTOR_SIZE PHOENIX_LIMIT
-#elif (FUSION_MAX_VECTOR_SIZE < PHOENIX_LIMIT)
-# error "FUSION_MAX_VECTOR_SIZE < PHOENIX_LIMIT"
+# define FUSION_MAX_VECTOR_SIZE BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
+#elif (FUSION_MAX_VECTOR_SIZE < BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT))
+# error "FUSION_MAX_VECTOR_SIZE < BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)"
 #endif
 
 #if !defined(BOOST_PROTO_MAX_ARITY)
@@ -89,26 +111,32 @@
 # error "BOOST_PROTO_MAX_ARITY < PHOENIX_COMPOSE_LIMIT"
 #endif
 
+#if !defined(BOOST_PROTO_MAX_LOGICAL_ARITY)
+# define BOOST_PROTO_MAX_LOGICAL_ARITY PHOENIX_COMPOSITE_LIMIT
+#elif BOOST_PROTO_MAX_LOGICAL_ARITY < PHOENIX_COMPOSITE_LIMIT
+# error "BOOST_PROTO_MAX_LOGICAL_ARITY < PHOENIX_COMPOSITE_LIMIT"
+#endif
+
 // this include will set the limit for the proto expression arity
 #include <boost/proto/proto_fwd.hpp>
 
 // this include will bring in mpl::vectorN and
-// fusion::vectorN where N is PHOENIX_LIMIT
+// fusion::vectorN where N is BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
 #include <boost/fusion/container/vector/vector10.hpp>
-#if PHOENIX_LIMIT > 10
+#if BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) > 10
 #include <boost/fusion/container/vector/vector20.hpp>
 #endif
-#if PHOENIX_LIMIT > 20
+#if BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) > 20
 #include <boost/fusion/container/vector/vector30.hpp>
 #endif
-#if PHOENIX_LIMIT > 30
+#if BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) > 30
 #include <boost/fusion/container/vector/vector40.hpp>
 #endif
-#if PHOENIX_LIMIT > 40
+#if BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) > 40
 #include <boost/fusion/container/vector/vector50.hpp>
 #endif
-#if PHOENIX_LIMIT > 50
-#error "PHOENIX_LIMIT too high!"
+#if BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) > 50
+#error "BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT) too high!"
 #endif
 
 #endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_EXPRESSION)
+#define PHOENIX_PREPROCESSED_EXPRESSION
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/core/preprocessed/expression_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/core/preprocessed/expression_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/core/preprocessed/expression_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/core/preprocessed/expression_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/core/preprocessed/expression_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,448 @@
+/*=============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Eric Niebler
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ template <typename Expr> struct actor;
+
+ template <
+ template <typename> class Actor
+ , typename Tag
+ , 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 expr_ext;
+ template <
+ typename Tag
+ , 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 expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> {};
+ struct default_domain_with_basic_expr
+ : proto::domain<proto::use_basic_expr<proto::default_generator> >
+ {};
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0>
+ struct expr_ext<Actor, Tag, A0>
+ : proto::transform<expr_ext<Actor, Tag, A0>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1>
+ struct expr_ext<Actor, Tag, A0 , A1>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9;
+ };
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,868 @@
+/*=============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Eric Niebler
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ template <typename Expr> struct actor;
+
+ template <
+ template <typename> class Actor
+ , typename Tag
+ , 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 expr_ext;
+ template <
+ typename Tag
+ , 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 expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> {};
+ struct default_domain_with_basic_expr
+ : proto::domain<proto::use_basic_expr<proto::default_generator> >
+ {};
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0>
+ struct expr_ext<Actor, Tag, A0>
+ : proto::transform<expr_ext<Actor, Tag, A0>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1>
+ struct expr_ext<Actor, Tag, A0 , A1>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19;
+ };
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1288 @@
+/*=============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Eric Niebler
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ template <typename Expr> struct actor;
+
+ template <
+ template <typename> class Actor
+ , typename Tag
+ , 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 expr_ext;
+ template <
+ typename Tag
+ , 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 expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29> {};
+ struct default_domain_with_basic_expr
+ : proto::domain<proto::use_basic_expr<proto::default_generator> >
+ {};
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0>
+ struct expr_ext<Actor, Tag, A0>
+ : proto::transform<expr_ext<Actor, Tag, A0>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1>
+ struct expr_ext<Actor, Tag, A0 , A1>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 expr_ext<Actor, Tag, 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 expr_ext<Actor, Tag, A0 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 expr_ext<Actor, Tag, A0 , A1 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29;
+ };
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1708 @@
+/*=============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Eric Niebler
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ template <typename Expr> struct actor;
+
+ template <
+ template <typename> class Actor
+ , typename Tag
+ , 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 A37 = void , typename A38 = void , typename A39 = void
+ , typename Dummy = void>
+ struct expr_ext;
+ template <
+ typename Tag
+ , 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 A37 = void , typename A38 = void , typename A39 = void
+ , typename Dummy = void
+ >
+ struct expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39> {};
+ struct default_domain_with_basic_expr
+ : proto::domain<proto::use_basic_expr<proto::default_generator> >
+ {};
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0>
+ struct expr_ext<Actor, Tag, A0>
+ : proto::transform<expr_ext<Actor, Tag, A0>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1>
+ struct expr_ext<Actor, Tag, A0 , A1>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 expr_ext<Actor, Tag, 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 expr_ext<Actor, Tag, A0 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 expr_ext<Actor, Tag, A0 , A1 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39;
+ };
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/preprocessed/expression_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2128 @@
+/*=============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Eric Niebler
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ template <typename Expr> struct actor;
+
+ template <
+ template <typename> class Actor
+ , typename Tag
+ , 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 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 expr_ext;
+ template <
+ typename Tag
+ , 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 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 expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> {};
+ struct default_domain_with_basic_expr
+ : proto::domain<proto::use_basic_expr<proto::default_generator> >
+ {};
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0>
+ struct expr_ext<Actor, Tag, A0>
+ : proto::transform<expr_ext<Actor, Tag, A0>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1>
+ struct expr_ext<Actor, Tag, A0 , A1>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::proto_grammar
+ proto_grammar;
+
+ static type make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::type
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::proto_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_expr
+ >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 expr_ext<Actor, Tag, 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 expr_ext<Actor, Tag, A0 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 expr_ext<Actor, Tag, A0 , A1 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42; typedef A43 proto_child43;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42; typedef A43 proto_child43; typedef A44 proto_child44;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42; typedef A43 proto_child43; typedef A44 proto_child44; typedef A45 proto_child45;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42; typedef A43 proto_child43; typedef A44 proto_child44; typedef A45 proto_child45; typedef A46 proto_child46;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42; typedef A43 proto_child43; typedef A44 proto_child44; typedef A45 proto_child45; typedef A46 proto_child46; typedef A47 proto_child47;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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_grammar
+ proto_grammar;
+
+ static type make(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)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42; typedef A43 proto_child43; typedef A44 proto_child44; typedef A45 proto_child45; typedef A46 proto_child46; typedef A47 proto_child47; typedef A48 proto_child48;
+ };
+
+
+
+
+
+
+
+ template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>, int>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ Tag
+ , default_domain_with_basic_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
+ base_type;
+ typedef Actor<base_type> type;
+ typedef
+ typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>::proto_grammar
+ proto_grammar;
+
+ static type make(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 , A49 a49)
+ {
+ actor<base_type> const e =
+ {
+ proto::make_expr<
+ Tag
+ , default_domain_with_basic_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)
+ };
+ return e;
+ }
+ template<typename Expr, typename State, typename Data>
+ struct impl
+ : proto::detail::pass_through_impl<expr_ext, Expr, State, Data>
+ {};
+
+ typedef Tag proto_tag;
+ typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; typedef A20 proto_child20; typedef A21 proto_child21; typedef A22 proto_child22; typedef A23 proto_child23; typedef A24 proto_child24; typedef A25 proto_child25; typedef A26 proto_child26; typedef A27 proto_child27; typedef A28 proto_child28; typedef A29 proto_child29; typedef A30 proto_child30; typedef A31 proto_child31; typedef A32 proto_child32; typedef A33 proto_child33; typedef A34 proto_child34; typedef A35 proto_child35; typedef A36 proto_child36; typedef A37 proto_child37; typedef
A38 proto_child38; typedef A39 proto_child39; typedef A40 proto_child40; typedef A41 proto_child41; typedef A42 proto_child42; typedef A43 proto_child43; typedef A44 proto_child44; typedef A45 proto_child45; typedef A46 proto_child46; typedef A47 proto_child47; typedef A48 proto_child48; typedef A49 proto_child49;
+ };
+}}

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_operator.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_operator.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_operator.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,22 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
+#define PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
+
+#include <boost/phoenix/function/detail/preprocessed/function_operator.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
+#define PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/function_operator_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,16 +25,19 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
-#define PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (1, PHOENIX_ACTOR_LIMIT, \
     <boost/phoenix/function/detail/function_operator.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -46,3 +68,5 @@
         }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_result_of.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_result_of.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/function_result_of.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,22 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_FUNCTION_DETAIL_FUNCTION_RESULT_OF_HPP
+#define PHOENIX_FUNCTION_DETAIL_FUNCTION_RESULT_OF_HPP
+
+#include <boost/phoenix/function/detail/preprocessed/function_result_of.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_FUNCTION_DETAIL_FUNCTION_RESULT_OF_HPP
+#define PHOENIX_FUNCTION_DETAIL_FUNCTION_RESULT_OF_HPP
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/function_result_of_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,16 +25,19 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_FUNCTION_DETAIL_FUNCTION_RESULT_OF_HPP
-#define PHOENIX_FUNCTION_DETAIL_FUNCTION_RESULT_OF_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (1, PHOENIX_ACTOR_LIMIT, \
     <boost/phoenix/function/detail/function_result_of.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -31,3 +53,5 @@
         {};
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_FUNCTION_OPERATOR)
+#define PHOENIX_PREPROCESSED_FUNCTION_OPERATOR
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/function/detail/preprocessed/function_operator_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/function/detail/preprocessed/function_operator_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/function/detail/preprocessed/function_operator_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/function/detail/preprocessed/function_operator_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/function/detail/preprocessed/function_operator_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,297 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ :result<This(A0 const&)>
+ {};
+ template <typename This, typename A0>
+ struct result<This(A0 &)>
+ : result_of::function<F, A0>
+ {};
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ :result<This(A0 const& , A1 const&)>
+ {};
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 & , A1 &)>
+ : result_of::function<F, A0 , A1>
+ {};
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ :result<This(A0 const& , A1 const& , A2 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 & , A1 & , A2 &)>
+ : result_of::function<F, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 & , A1 & , A2 & , A3 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &)>
+ : result_of::function<F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,587 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ :result<This(A0 const&)>
+ {};
+ template <typename This, typename A0>
+ struct result<This(A0 &)>
+ : result_of::function<F, A0>
+ {};
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ :result<This(A0 const& , A1 const&)>
+ {};
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 & , A1 &)>
+ : result_of::function<F, A0 , A1>
+ {};
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ :result<This(A0 const& , A1 const& , A2 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 & , A1 & , A2 &)>
+ : result_of::function<F, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 & , A1 & , A2 & , A3 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &)>
+ : result_of::function<F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &)>
+ : result_of::function<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 result_of::function<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 & 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,877 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ :result<This(A0 const&)>
+ {};
+ template <typename This, typename A0>
+ struct result<This(A0 &)>
+ : result_of::function<F, A0>
+ {};
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ :result<This(A0 const& , A1 const&)>
+ {};
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 & , A1 &)>
+ : result_of::function<F, A0 , A1>
+ {};
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ :result<This(A0 const& , A1 const& , A2 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 & , A1 & , A2 &)>
+ : result_of::function<F, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 & , A1 & , A2 & , A3 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &)>
+ : result_of::function<F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &)>
+ : result_of::function<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 result_of::function<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 & 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &)>
+ : result_of::function<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 result_of::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
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::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
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &)>
+ : result_of::function<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 result_of::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
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::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
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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<
+ proto::tag::function, phoenix_domain>(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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &)>
+ : result_of::function<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 result_of::function<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 & 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &)>
+ : result_of::function<F, 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::function<F, 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 & 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<
+ proto::tag::function, phoenix_domain>(f, 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::function<F, 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &)>
+ : result_of::function<F, A0 , 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::function<F, A0 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , 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::function<F, A0 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &)>
+ : result_of::function<F, A0 , A1 , 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::function<F, A0 , A1 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , 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::function<F, A0 , A1 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &)>
+ : result_of::function<F, A0 , A1 , A2 , 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::function<F, A0 , A1 , A2 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , 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::function<F, A0 , A1 , A2 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , 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::function<F, A0 , A1 , A2 , A3 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , 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::function<F, A0 , A1 , A2 , A3 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , 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::function<F, A0 , A1 , A2 , A3 , A4 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , 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::function<F, A0 , A1 , A2 , A3 , A4 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1167 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ :result<This(A0 const&)>
+ {};
+ template <typename This, typename A0>
+ struct result<This(A0 &)>
+ : result_of::function<F, A0>
+ {};
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ :result<This(A0 const& , A1 const&)>
+ {};
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 & , A1 &)>
+ : result_of::function<F, A0 , A1>
+ {};
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ :result<This(A0 const& , A1 const& , A2 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 & , A1 & , A2 &)>
+ : result_of::function<F, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 & , A1 & , A2 & , A3 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &)>
+ : result_of::function<F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &)>
+ : result_of::function<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 result_of::function<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 & 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &)>
+ : result_of::function<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 result_of::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
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::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
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &)>
+ : result_of::function<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 result_of::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
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::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
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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<
+ proto::tag::function, phoenix_domain>(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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &)>
+ : result_of::function<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 result_of::function<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 & 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &)>
+ : result_of::function<F, 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::function<F, 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 & 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<
+ proto::tag::function, phoenix_domain>(f, 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::function<F, 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &)>
+ : result_of::function<F, A0 , 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::function<F, A0 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , 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::function<F, A0 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &)>
+ : result_of::function<F, A0 , A1 , 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::function<F, A0 , A1 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , 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::function<F, A0 , A1 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &)>
+ : result_of::function<F, A0 , A1 , A2 , 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::function<F, A0 , A1 , A2 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , 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::function<F, A0 , A1 , A2 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , 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::function<F, A0 , A1 , A2 , A3 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , 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::function<F, A0 , A1 , A2 , A3 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , 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::function<F, A0 , A1 , A2 , A3 , A4 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , 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::function<F, A0 , A1 , A2 , A3 , A4 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1457 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename This, typename A0>
+ struct result<This(A0)>
+ :result<This(A0 const&)>
+ {};
+ template <typename This, typename A0>
+ struct result<This(A0 &)>
+ : result_of::function<F, A0>
+ {};
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+ template <typename A0>
+ typename result_of::function<F, A0>::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 , A1)>
+ :result<This(A0 const& , A1 const&)>
+ {};
+ template <typename This, typename A0 , typename A1>
+ struct result<This(A0 & , A1 &)>
+ : result_of::function<F, A0 , A1>
+ {};
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::function<F, A0 , A1>::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 , A1 , A2)>
+ :result<This(A0 const& , A1 const& , A2 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2>
+ struct result<This(A0 & , A1 & , A2 &)>
+ : result_of::function<F, A0 , A1 , A2>
+ {};
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::function<F, A0 , A1 , A2>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 , A1 , A2 , A3)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
+ struct result<This(A0 & , A1 & , A2 & , A3 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::function<F, A0 , A1 , A2 , A3>::type const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 , A1 , A2 , A3 , A4)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &)>
+ : result_of::function<F, 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
+ {};
+ template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10)>
+ :result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &)>
+ : result_of::function<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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &)>
+ : result_of::function<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 result_of::function<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 & 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &)>
+ : result_of::function<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 result_of::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
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::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
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &)>
+ : result_of::function<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 result_of::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
+ 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<
+ proto::tag::function, phoenix_domain>(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 result_of::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
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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<
+ proto::tag::function, phoenix_domain>(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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &)>
+ : result_of::function<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 result_of::function<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 & 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<
+ proto::tag::function, phoenix_domain>(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 result_of::function<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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &)>
+ : result_of::function<F, 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::function<F, 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 & 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<
+ proto::tag::function, phoenix_domain>(f, 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::function<F, 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &)>
+ : result_of::function<F, A0 , 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::function<F, A0 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , 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::function<F, A0 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &)>
+ : result_of::function<F, A0 , A1 , 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::function<F, A0 , A1 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , 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::function<F, A0 , A1 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &)>
+ : result_of::function<F, A0 , A1 , A2 , 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::function<F, A0 , A1 , A2 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , 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::function<F, A0 , A1 , A2 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , 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::function<F, A0 , A1 , A2 , A3 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , 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::function<F, A0 , A1 , A2 , A3 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , 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::function<F, A0 , A1 , A2 , A3 , A4 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , 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::function<F, A0 , A1 , A2 , A3 , A4 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 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 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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)>
+ :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&)>
+ {};
+ 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 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , 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 &)>
+ : result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 & 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 , A49 & a49) const
+ {
+ return proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 result_of::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 proto::make_expr<
+ proto::tag::function, phoenix_domain>(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_FUNCTION_RESULT_OF)
+#define PHOENIX_PREPROCESSED_FUNCTION_RESULT_OF
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/function/detail/preprocessed/function_result_of_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/function/detail/preprocessed/function_result_of_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/function/detail/preprocessed/function_result_of_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/function/detail/preprocessed/function_result_of_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/function/detail/preprocessed/function_result_of_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,167 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ struct function<F, A0>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ struct function<F, A0 , A1>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ struct function<F, A0 , A1 , A2>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ struct function<F, A0 , A1 , A2 , A3>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct function<F, A0 , A1 , A2 , A3 , A4>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >
+ {};

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,327 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ struct function<F, A0>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ struct function<F, A0 , A1>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ struct function<F, A0 , A1 , A2>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ struct function<F, A0 , A1 , A2 , A3>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct function<F, A0 , A1 , A2 , A3 , A4>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >
+ {};

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,487 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ struct function<F, A0>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ struct function<F, A0 , A1>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ struct function<F, A0 , A1 , A2>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ struct function<F, A0 , A1 , A2 , A3>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct function<F, A0 , A1 , A2 , A3 , A4>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 function<F, A0 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 function<F, A0 , A1 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 function<F, A0 , A1 , A2 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 function<F, A0 , A1 , A2 , A3 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 function<F, A0 , A1 , A2 , A3 , A4 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29
+ >
+ {};

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,647 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ struct function<F, A0>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ struct function<F, A0 , A1>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ struct function<F, A0 , A1 , A2>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ struct function<F, A0 , A1 , A2 , A3>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct function<F, A0 , A1 , A2 , A3 , A4>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 function<F, A0 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 function<F, A0 , A1 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 function<F, A0 , A1 , A2 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 function<F, A0 , A1 , A2 , A3 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 function<F, A0 , A1 , A2 , A3 , A4 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39
+ >
+ {};

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/detail/preprocessed/function_result_of_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,807 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename F, typename A0>
+ struct function<F, A0>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1>
+ struct function<F, A0 , A1>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2>
+ struct function<F, A0 , A1 , A2>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
+ struct function<F, A0 , A1 , A2 , A3>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct function<F, A0 , A1 , A2 , A3 , A4>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >
+ {};
+
+
+
+
+
+
+
+ template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 function<F, 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 function<F, A0 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 function<F, A0 , A1 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 function<F, A0 , A1 , A2 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 function<F, A0 , A1 , A2 , A3 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 function<F, A0 , A1 , A2 , A3 , A4 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : proto::result_of::make_expr<
+ proto::tag::function
+ , phoenix_domain
+ , F
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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: sandbox/SOC/2010/phoenix3/boost/phoenix/object/const_cast.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/const_cast.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/const_cast.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -8,6 +8,7 @@
 #ifndef PHOENIX_OBJECT_CONST_CAST_HPP
 #define PHOENIX_OBJECT_CONST_CAST_HPP
 
+#include <boost/phoenix/core/limits.hpp>
 #include <boost/phoenix/core/expression.hpp>
 #include <boost/phoenix/object/detail/target.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/construct.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/construct.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/construct.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -8,6 +8,7 @@
 #ifndef PHOENIX_OBJECT_CONSTRUCT_HPP
 #define PHOENIX_OBJECT_CONSTRUCT_HPP
 
+#include <boost/phoenix/core/limits.hpp>
 #include <boost/phoenix/core/expression.hpp>
 #include <boost/phoenix/support/iterate.hpp>
 #include <boost/proto/fusion.hpp>
@@ -69,7 +70,7 @@
>(_env)
>
>
- , BOOST_PP_ENUM_SHIFTED(PHOENIX_LIMIT, PHOENIX_CONSTRUCT_CALL, _)
+ , BOOST_PP_ENUM_SHIFTED(PHOENIX_COMPOSITE_LIMIT, PHOENIX_CONSTRUCT_CALL, _)
>
 
     {};

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/delete.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/delete.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/delete.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -24,17 +24,17 @@
         {};
     }
 
- namespace rule
- {
- struct delete_
+ namespace rule
+ {
+ struct delete_
             : expression::delete_<meta_grammar>
- {};
- }
+ {};
+ }
 
- template <typename Dummy>
- struct meta_grammar::case_<tag::delete_, Dummy>
- : proto::when<rule::delete_, proto::external_transform>
- {};
+ template <typename Dummy>
+ struct meta_grammar::case_<tag::delete_, Dummy>
+ : proto::when<rule::delete_, proto::external_transform>
+ {};
 
     struct delete_eval
         : proto::callable
@@ -45,7 +45,7 @@
         result_type
         operator()(Env& env, P const& p) const
         {
- return delete eval(p, env);
+ /*return*/ delete eval(p, env);
         }
     };
 

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,22 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
+#define PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
+
+#include <boost/phoenix/object/detail/preprocessed/construct.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
+#define PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/construct_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,16 +25,19 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
-#define PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (1, PHOENIX_COMPOSITE_LIMIT, \
     <boost/phoenix/object/detail/construct.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -31,3 +53,5 @@
     }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct_eval.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct_eval.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/construct_eval.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,22 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_OBJECT_DETAIL_CONSTRUCT_EVAL_HPP
+#define PHOENIX_OBJECT_DETAIL_CONSTRUCT_EVAL_HPP
+
+#include <boost/phoenix/object/detail/preprocessed/construct_eval.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_OBJECT_DETAIL_CONSTRUCT_EVAL_HPP
+#define PHOENIX_OBJECT_DETAIL_CONSTRUCT_EVAL_HPP
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/construct_eval_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,16 +25,19 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_OBJECT_DETAIL_CONSTRUCT_EVAL_HPP
-#define PHOENIX_OBJECT_DETAIL_CONSTRUCT_EVAL_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (1, PHOENIX_COMPOSITE_LIMIT, \
     <boost/phoenix/object/detail/construct_eval.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -32,3 +54,5 @@
         }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,22 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_OBJECT_DETAIL_NEW_HPP
+#define PHOENIX_OBJECT_DETAIL_NEW_HPP
+
+#include <boost/phoenix/object/detail/preprocessed/new.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_OBJECT_DETAIL_NEW_HPP
+#define PHOENIX_OBJECT_DETAIL_NEW_HPP
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/new_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,16 +25,19 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_OBJECT_DETAIL_NEW_HPP
-#define PHOENIX_OBJECT_DETAIL_NEW_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (1, PHOENIX_COMPOSITE_LIMIT, \
     <boost/phoenix/object/detail/new.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -32,3 +54,4 @@
 
 #endif
 
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new_eval.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new_eval.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/new_eval.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,22 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_OBJECT_DETAIL_NEW_EVAL_HPP
+#define PHOENIX_OBJECT_DETAIL_NEW_EVAL_HPP
+
+#include <boost/phoenix/object/detail/preprocessed/new_eval.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_OBJECT_DETAIL_NEW_EVAL_HPP
+#define PHOENIX_OBJECT_DETAIL_NEW_EVAL_HPP
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/new_eval_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,16 +25,19 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_OBJECT_DETAIL_NEW_EVAL_HPP
-#define PHOENIX_OBJECT_DETAIL_NEW_EVAL_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (1, PHOENIX_COMPOSITE_LIMIT, \
     <boost/phoenix/object/detail/new_eval.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -35,3 +57,5 @@
         }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_CONSTRUCT)
+#define PHOENIX_PREPROCESSED_CONSTRUCT
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/object/detail/preprocessed/construct_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/object/detail/preprocessed/construct_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/object/detail/preprocessed/construct_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/object/detail/preprocessed/construct_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/object/detail/preprocessed/construct_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,167 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::construct<detail::target<T>, A0>::type const
+ construct(A0 const& a0)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::construct<detail::target<T>, A0 , A1>::type const
+ construct(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,327 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::construct<detail::target<T>, A0>::type const
+ construct(A0 const& a0)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::construct<detail::target<T>, A0 , A1>::type const
+ construct(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,487 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::construct<detail::target<T>, A0>::type const
+ construct(A0 const& a0)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::construct<detail::target<T>, A0 , A1>::type const
+ construct(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::construct<detail::target<T>, 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::
+ make(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::construct<detail::target<T>, 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, 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(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::construct<detail::target<T>, A0 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , 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(detail::target<T>(), a0 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::construct<detail::target<T>, A0 , A1 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , 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(detail::target<T>(), a0 , a1 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , 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(detail::target<T>(), a0 , a1 , a2 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,647 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::construct<detail::target<T>, A0>::type const
+ construct(A0 const& a0)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::construct<detail::target<T>, A0 , A1>::type const
+ construct(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::construct<detail::target<T>, 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::
+ make(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::construct<detail::target<T>, 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, 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(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::construct<detail::target<T>, A0 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , 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(detail::target<T>(), a0 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::construct<detail::target<T>, A0 , A1 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , 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(detail::target<T>(), a0 , a1 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , 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(detail::target<T>(), a0 , a1 , a2 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,807 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::construct<detail::target<T>, A0>::type const
+ construct(A0 const& a0)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::construct<detail::target<T>, A0 , A1>::type const
+ construct(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::construct<detail::target<T>, 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::
+ make(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::construct<detail::target<T>, 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, 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(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::construct<detail::target<T>, A0 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , 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(detail::target<T>(), a0 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::construct<detail::target<T>, A0 , A1 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , 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(detail::target<T>(), a0 , a1 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , 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(detail::target<T>(), a0 , a1 , a2 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_CONSTRUCT_EVAL)
+#define PHOENIX_PREPROCESSED_CONSTRUCT_EVAL
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/object/detail/preprocessed/construct_eval_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/object/detail/preprocessed/construct_eval_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/object/detail/preprocessed/construct_eval_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/object/detail/preprocessed/construct_eval_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/object/detail/preprocessed/construct_eval_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,147 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return result_type(eval(a0, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env));
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,287 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return result_type(eval(a0, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env));
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,427 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return result_type(eval(a0, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env));
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,567 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return result_type(eval(a0, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env));
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/construct_eval_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,707 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return result_type(eval(a0, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env) , eval(a47, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env) , eval(a47, env) , eval(a48, env));
+ }
+
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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 result_type(eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env) , eval(a47, env) , eval(a48, env) , eval(a49, env));
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_NEW)
+#define PHOENIX_PREPROCESSED_NEW
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/object/detail/preprocessed/new_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/object/detail/preprocessed/new_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/object/detail/preprocessed/new_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/object/detail/preprocessed/new_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/object/detail/preprocessed/new_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,167 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::new_<detail::target<T>, A0>::type const
+ new_(A0 const& a0)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::new_<detail::target<T>, A0 , A1>::type const
+ new_(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,327 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::new_<detail::target<T>, A0>::type const
+ new_(A0 const& a0)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::new_<detail::target<T>, A0 , A1>::type const
+ new_(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,487 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::new_<detail::target<T>, A0>::type const
+ new_(A0 const& a0)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::new_<detail::target<T>, A0 , A1>::type const
+ new_(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::new_<detail::target<T>, 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::
+ make(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::new_<detail::target<T>, 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, 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(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::new_<detail::target<T>, A0 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , 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(detail::target<T>(), a0 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::new_<detail::target<T>, A0 , A1 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , 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(detail::target<T>(), a0 , a1 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , 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(detail::target<T>(), a0 , a1 , a2 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,647 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::new_<detail::target<T>, A0>::type const
+ new_(A0 const& a0)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::new_<detail::target<T>, A0 , A1>::type const
+ new_(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::new_<detail::target<T>, 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::
+ make(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::new_<detail::target<T>, 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, 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(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::new_<detail::target<T>, A0 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , 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(detail::target<T>(), a0 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::new_<detail::target<T>, A0 , A1 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , 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(detail::target<T>(), a0 , a1 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , 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(detail::target<T>(), a0 , a1 , a2 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,807 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename T, typename A0>
+ typename expression::new_<detail::target<T>, A0>::type const
+ new_(A0 const& a0)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0>::
+ make(detail::target<T>(), a0);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1>
+ typename expression::new_<detail::target<T>, A0 , A1>::type const
+ new_(A0 const& a0 , A1 const& a1)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1>::
+ make(detail::target<T>(), a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2>::
+ make(detail::target<T>(), a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename expression::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::
+ make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ }
+
+
+
+
+
+
+
+ template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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::new_<detail::target<T>, 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::
+ make(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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::new_<detail::target<T>, 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, 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(detail::target<T>(), 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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::new_<detail::target<T>, A0 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , 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(detail::target<T>(), a0 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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::new_<detail::target<T>, A0 , A1 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , 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(detail::target<T>(), a0 , a1 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , 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(detail::target<T>(), a0 , a1 , a2 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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::new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ new_(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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)
+ {
+ return
+ expression::
+ new_<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_NEW_EVAL)
+#define PHOENIX_PREPROCESSED_NEW_EVAL
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/object/detail/preprocessed/new_eval_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/object/detail/preprocessed/new_eval_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/object/detail/preprocessed/new_eval_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/object/detail/preprocessed/new_eval_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/object/detail/preprocessed/new_eval_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,167 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return
+ new construct_type(
+ eval(a0, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env)
+ );
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,327 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return
+ new construct_type(
+ eval(a0, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env)
+ );
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,487 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return
+ new construct_type(
+ eval(a0, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env)
+ );
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,647 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return
+ new construct_type(
+ eval(a0, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env)
+ );
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/detail/preprocessed/new_eval_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,807 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename A0>
+ result_type
+ operator()(Env& env, A0 const& a0) const
+ {
+ return
+ new construct_type(
+ eval(a0, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ return
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ result_type
+ operator()(Env& env, 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ result_type
+ operator()(Env& env, A0 const& a0 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env) , eval(a47, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env) , eval(a47, env) , eval(a48, env)
+ );
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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>
+ result_type
+ operator()(Env& env, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ new construct_type(
+ eval(a0, env) , eval(a1, env) , eval(a2, env) , eval(a3, env) , eval(a4, env) , eval(a5, env) , eval(a6, env) , eval(a7, env) , eval(a8, env) , eval(a9, env) , eval(a10, env) , eval(a11, env) , eval(a12, env) , eval(a13, env) , eval(a14, env) , eval(a15, env) , eval(a16, env) , eval(a17, env) , eval(a18, env) , eval(a19, env) , eval(a20, env) , eval(a21, env) , eval(a22, env) , eval(a23, env) , eval(a24, env) , eval(a25, env) , eval(a26, env) , eval(a27, env) , eval(a28, env) , eval(a29, env) , eval(a30, env) , eval(a31, env) , eval(a32, env) , eval(a33, env) , eval(a34, env) , eval(a35, env) , eval(a36, env) , eval(a37, env) , eval(a38, env) , eval(a39, env) , eval(a40, env) , eval(a41, env) , eval(a42, env) , eval(a43, env) , eval(a44, env) , eval(a45, env) , eval(a46, env) , eval(a47, env) , eval(a48, env) , eval(a49, env)
+ );
+ }

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/dynamic_cast.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/dynamic_cast.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/dynamic_cast.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -8,6 +8,7 @@
 #ifndef PHOENIX_OBJECT_DYNAMIC_CAST_HPP
 #define PHOENIX_OBJECT_DYNAMIC_CAST_HPP
 
+#include <boost/phoenix/core/limits.hpp>
 #include <boost/phoenix/core/expression.hpp>
 #include <boost/phoenix/object/detail/target.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/new.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/new.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/new.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -8,6 +8,7 @@
 #ifndef PHOENIX_OBJECT_NEW_HPP
 #define PHOENIX_OBJECT_NEW_HPP
 
+#include <boost/phoenix/core/limits.hpp>
 #include <boost/phoenix/core/expression.hpp>
 #include <boost/phoenix/support/iterate.hpp>
 #include <boost/proto/fusion.hpp>
@@ -70,7 +71,7 @@
>(_env)
>
>
- , BOOST_PP_ENUM_SHIFTED(PHOENIX_LIMIT, PHOENIX_NEW_CALL, _)
+ , BOOST_PP_ENUM_SHIFTED(PHOENIX_COMPOSITE_LIMIT, PHOENIX_NEW_CALL, _)
>
 
     {};

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/reinterpret_cast.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/reinterpret_cast.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/reinterpret_cast.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -8,6 +8,7 @@
 #ifndef PHOENIX_OBJECT_REINTERPRET_CAST_HPP
 #define PHOENIX_OBJECT_REINTERPRET_CAST_HPP
 
+#include <boost/phoenix/core/limits.hpp>
 #include <boost/phoenix/core/expression.hpp>
 #include <boost/phoenix/object/detail/target.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/object/static_cast.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/object/static_cast.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/object/static_cast.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -8,6 +8,7 @@
 #ifndef PHOENIX_OBJECT_STATIC_CAST_HPP
 #define PHOENIX_OBJECT_STATIC_CAST_HPP
 
+#include <boost/phoenix/core/limits.hpp>
 #include <boost/phoenix/core/expression.hpp>
 #include <boost/phoenix/object/detail/target.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
+#define PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
+#define PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/mem_fun_ptr_gen_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2001-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,19 +29,18 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
-#define PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 namespace boost { namespace phoenix
 {
- namespace tag
- {
- struct mem_fun_ptr;
- }
+ namespace tag
+ {
+ struct mem_fun_ptr;
+ }
 
- namespace detail {
+ namespace detail {
         namespace result_of
         {
             template <typename Object, typename MemPtr,
@@ -73,9 +95,13 @@
 
         };
 
- }
+ }
 }}
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -120,3 +146,5 @@
 
 #endif
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_MEM_FUN_PTR_GEN)
+#define PHOENIX_PREPROCESSED_MEM_FUN_PTR_GEN
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,452 @@
+/*==============================================================================
+ Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace tag
+ {
+ struct mem_fun_ptr;
+ }
+ namespace detail {
+ namespace result_of
+ {
+ template <typename Object, typename MemPtr,
+ 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 Dummy = void>
+ struct mem_fun_ptr_gen;
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen<Object, MemPtr>
+ : proto::result_of::make_expr<
+ tag::mem_fun_ptr
+ , phoenix_domain
+ , Object
+ , MemPtr>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+ }
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen
+ {
+ mem_fun_ptr_gen(Object const& obj, MemPtr ptr)
+ : obj(obj)
+ , ptr(ptr)
+ {}
+ typename result_of::mem_fun_ptr_gen<Object, MemPtr>::type const
+ operator()() const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ }
+
+
+
+
+
+
+
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ 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);
+ }
+ Object const& obj;
+ MemPtr ptr;
+ };
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,902 @@
+/*==============================================================================
+ Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace tag
+ {
+ struct mem_fun_ptr;
+ }
+ namespace detail {
+ namespace result_of
+ {
+ template <typename Object, typename MemPtr,
+ 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 Dummy = void>
+ struct mem_fun_ptr_gen;
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen<Object, MemPtr>
+ : proto::result_of::make_expr<
+ tag::mem_fun_ptr
+ , phoenix_domain
+ , Object
+ , MemPtr>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+ }
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen
+ {
+ mem_fun_ptr_gen(Object const& obj, MemPtr ptr)
+ : obj(obj)
+ , ptr(ptr)
+ {}
+ typename result_of::mem_fun_ptr_gen<Object, MemPtr>::type const
+ operator()() const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ }
+
+
+
+
+
+
+
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ 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);
+ }
+ Object const& obj;
+ MemPtr ptr;
+ };
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1352 @@
+/*==============================================================================
+ Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace tag
+ {
+ struct mem_fun_ptr;
+ }
+ namespace detail {
+ namespace result_of
+ {
+ template <typename Object, typename MemPtr,
+ 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 Dummy = void>
+ struct mem_fun_ptr_gen;
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen<Object, MemPtr>
+ : proto::result_of::make_expr<
+ tag::mem_fun_ptr
+ , phoenix_domain
+ , Object
+ , MemPtr>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+ }
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen
+ {
+ mem_fun_ptr_gen(Object const& obj, MemPtr ptr)
+ : obj(obj)
+ , ptr(ptr)
+ {}
+ typename result_of::mem_fun_ptr_gen<Object, MemPtr>::type const
+ operator()() const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ }
+
+
+
+
+
+
+
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_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<
+ Object
+ , MemPtr
+ , 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 & 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(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<
+ Object
+ , MemPtr
+ , 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 & 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , 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<
+ 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
+ >::type const
+ 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);
+ }
+ Object const& obj;
+ MemPtr ptr;
+ };
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1802 @@
+/*==============================================================================
+ Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace tag
+ {
+ struct mem_fun_ptr;
+ }
+ namespace detail {
+ namespace result_of
+ {
+ template <typename Object, typename MemPtr,
+ 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 A37 = void , typename A38 = void
+ , typename Dummy = void>
+ struct mem_fun_ptr_gen;
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen<Object, MemPtr>
+ : proto::result_of::make_expr<
+ tag::mem_fun_ptr
+ , phoenix_domain
+ , Object
+ , MemPtr>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+ }
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen
+ {
+ mem_fun_ptr_gen(Object const& obj, MemPtr ptr)
+ : obj(obj)
+ , ptr(ptr)
+ {}
+ typename result_of::mem_fun_ptr_gen<Object, MemPtr>::type const
+ operator()() const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ }
+
+
+
+
+
+
+
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_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<
+ Object
+ , MemPtr
+ , 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 & 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(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<
+ Object
+ , MemPtr
+ , 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 & 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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<
+ 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
+ >::type const
+ 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);
+ }
+ Object const& obj;
+ MemPtr ptr;
+ };
+ }
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2252 @@
+/*==============================================================================
+ Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace tag
+ {
+ struct mem_fun_ptr;
+ }
+ namespace detail {
+ namespace result_of
+ {
+ template <typename Object, typename MemPtr,
+ 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 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 , type
name A46 = void , typename A47 = void , typename A48 = void
+ , typename Dummy = void>
+ struct mem_fun_ptr_gen;
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen<Object, MemPtr>
+ : proto::result_of::make_expr<
+ tag::mem_fun_ptr
+ , phoenix_domain
+ , Object
+ , MemPtr>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+
+
+
+
+
+
+
+ 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_domain
+ , 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>
+ {};
+ }
+ template <typename Object, typename MemPtr>
+ struct mem_fun_ptr_gen
+ {
+ mem_fun_ptr_gen(Object const& obj, MemPtr ptr)
+ : obj(obj)
+ , ptr(ptr)
+ {}
+ typename result_of::mem_fun_ptr_gen<Object, MemPtr>::type const
+ operator()() const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ }
+
+
+
+
+
+
+
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 const& a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+ template <typename A0>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0
+ >::type const
+ operator()(A0 & a0) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+ template <typename A0 , typename A1>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1
+ >::type const
+ operator()(A0 & a0 , A1 & a1) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2
+ >::type const
+ operator()(A0 & a0 , A1 & a1 , A2 & a2) const
+ {
+ return proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename result_of::mem_fun_ptr_gen<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, 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<
+ Object
+ , MemPtr
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_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<
+ Object
+ , MemPtr
+ , 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 & 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename 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<
+ Object
+ , MemPtr
+ , 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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(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<
+ Object
+ , MemPtr
+ , 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 & 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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<
+ 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
+ >::type const
+ 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);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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<
+ 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
+ >::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 proto::make_expr<
+ tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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<
+ 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
+ >::type const
+ 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);
+ }
+ Object const& obj;
+ MemPtr ptr;
+ };
+ }
+}}

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/member.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/operator/member.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/member.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,19 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_OPERATOR_MEMBER_HPP
+#define PHOENIX_OPERATOR_MEMBER_HPP
+
+#include <boost/get_pointer.hpp>
+#include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+#include <boost/type_traits/is_member_function_pointer.hpp>
+
+#include <boost/phoenix/operator/preprocessed/member.hpp>
+
+#endif
+#else
+
 #if !PHOENIX_IS_ITERATING
 
 #ifndef PHOENIX_OPERATOR_MEMBER_HPP
@@ -9,15 +25,31 @@
 #include <boost/phoenix/support/iterate.hpp>
 #include <boost/type_traits/is_member_function_pointer.hpp>
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/member_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
 namespace boost { namespace phoenix
 {
- PHOENIX_BINARY_OPERATORS(
- (mem_ptr)
- )
+ PHOENIX_BINARY_OPERATORS(
+ (mem_ptr)
+ )
 
     PHOENIX_DEFINE_EXPRESSION_VARARG(mem_fun_ptr, (meta_grammar), PHOENIX_LIMIT)
 
- template <typename Object, typename MemPtr>
+ template <typename Object, typename MemPtr>
     typename enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
@@ -39,9 +71,9 @@
         #include <boost/phoenix/operator/detail/mem_fun_ptr_eval_result_of.hpp>
     }
 
- struct mem_fun_ptr_eval
- : proto::callable
- {
+ struct mem_fun_ptr_eval
+ : proto::callable
+ {
         template<typename Sig>
         struct result;
         
@@ -79,7 +111,7 @@
     /**/
         #include PHOENIX_ITERATE()
     #undef PHOENIX_MEMBER_EVAL
- };
+ };
 
     template <typename Dummy>
     struct default_actions::when<rule::mem_fun_ptr, Dummy>
@@ -87,6 +119,10 @@
     {};
 }}
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else // PHOENIX_IS_ITERATING
@@ -99,7 +135,7 @@
           , mpl::long_<PHOENIX_ITERATION>
         ) const
         {
- return
+ return
                 (
                     get_pointer(eval(proto::child_c<0>(expr), env))
                     ->*eval(proto::child_c<1>(expr), env)
@@ -116,3 +152,4 @@
 
 #endif
 
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_MEMBER)
+#define PHOENIX_PREPROCESSED_MEMBER
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/operator/preprocessed/member_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/operator/preprocessed/member_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/operator/preprocessed/member_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/operator/preprocessed/member_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/operator/preprocessed/member_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,457 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace rule { struct mem_ptr : proto::binary_expr<proto::tag::mem_ptr, proto::_, proto::_> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : proto::when<rule::mem_ptr, proto::external_transform> {};
+ namespace tag { struct mem_fun_ptr {}; } 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 > : expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : 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 > : 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typ
ename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : 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 > : 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 > : 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 > : 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 > > {}; } template <typename Dummy> struct meta_grammar::case_<tag:: mem_fun_ptr, Dummy> : proto::when<rule:: mem_fun_ptr, proto::external_transform> {};
+ template <typename Object, typename MemPtr>
+ typename enable_if<
+ is_member_function_pointer<MemPtr>
+ , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
+ >::type
+ operator->*(actor<Object> const& obj, MemPtr ptr)
+ {
+ return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);
+ }
+ namespace result_of
+ {
+ template <
+ typename Env
+ , typename Expr
+ , long Arity = proto::arity_of<Expr>::value
+ >
+ struct mem_fun_ptr_eval;
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 2>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 3>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 4>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 5>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 6>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 7>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 8>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 9>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 10>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9
+ )
+ >::type
+ type;
+ };
+ }
+ struct mem_fun_ptr_eval
+ : proto::callable
+ {
+ template<typename Sig>
+ struct result;
+
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env, Expr const &)>
+ : result<This(Env const &, Expr const &)>
+ {};
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env &, Expr const &)>
+ : result_of::mem_fun_ptr_eval<Env, Expr>
+ {};
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ operator()(Env & env, Expr const & expr) const
+ {
+ return
+ this->evaluate(
+ env
+ , expr
+ , typename proto::arity_of<Expr>::type()
+ );
+ }
+ private:
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<2>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<3>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<4>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<5>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<6>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<7>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<8>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<9>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<10>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env)
+ );
+ }
+
+ };
+ template <typename Dummy>
+ struct default_actions::when<rule::mem_fun_ptr, Dummy>
+ : proto::call<mem_fun_ptr_eval(_env, proto::_)>
+ {};
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,897 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace rule { struct mem_ptr : proto::binary_expr<proto::tag::mem_ptr, proto::_, proto::_> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : proto::when<rule::mem_ptr, proto::external_transform> {};
+ namespace tag { struct mem_fun_ptr {}; } 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 > : expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : 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 > : expr< tag:: mem_fun_ptr , A
0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : 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 > : 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 > : 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 > : 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 , t
ypename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > > {}; } template <typename Dummy> struct meta_grammar::case_<tag:: mem_fun_ptr, Dummy> : proto::when<rule:: mem_fun_ptr, proto::external_transform> {};
+ template <typename Object, typename MemPtr>
+ typename enable_if<
+ is_member_function_pointer<MemPtr>
+ , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
+ >::type
+ operator->*(actor<Object> const& obj, MemPtr ptr)
+ {
+ return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);
+ }
+ namespace result_of
+ {
+ template <
+ typename Env
+ , typename Expr
+ , long Arity = proto::arity_of<Expr>::value
+ >
+ struct mem_fun_ptr_eval;
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 2>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 3>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 4>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 5>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 6>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 7>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 8>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 9>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 10>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 11>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 12>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 13>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 14>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 15>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 16>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 17>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 18>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 19>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 20>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19
+ )
+ >::type
+ type;
+ };
+ }
+ struct mem_fun_ptr_eval
+ : proto::callable
+ {
+ template<typename Sig>
+ struct result;
+
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env, Expr const &)>
+ : result<This(Env const &, Expr const &)>
+ {};
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env &, Expr const &)>
+ : result_of::mem_fun_ptr_eval<Env, Expr>
+ {};
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ operator()(Env & env, Expr const & expr) const
+ {
+ return
+ this->evaluate(
+ env
+ , expr
+ , typename proto::arity_of<Expr>::type()
+ );
+ }
+ private:
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<2>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<3>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<4>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<5>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<6>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<7>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<8>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<9>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<10>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<11>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<12>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<13>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<14>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<15>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<16>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<17>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<18>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<19>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<20>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env)
+ );
+ }
+
+ };
+ template <typename Dummy>
+ struct default_actions::when<rule::mem_fun_ptr, Dummy>
+ : proto::call<mem_fun_ptr_eval(_env, proto::_)>
+ {};
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1337 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace rule { struct mem_ptr : proto::binary_expr<proto::tag::mem_ptr, proto::_, proto::_> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : proto::when<rule::mem_ptr, proto::external_transform> {};
+ namespace tag { struct mem_fun_ptr {}; } 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 > : expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2
> struct mem_fun_ptr< A0 , A1 , A2 > : 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 > : 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 > : 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 > : 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 > : 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 , A
3 , A4 , A5 , A6 , A7 > : 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 > : 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 > : 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; 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 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : 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 > : 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 > : 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 > : 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; templa
te < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 > : 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typenam
e A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 > : 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A
7 , 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 > : 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 > : 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 > : 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 , typena
me A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > > {}; } template <typename Dummy> struct meta_grammar::case_<tag:: mem_fun_ptr, Dummy> : proto::when<rule:: mem_fun_ptr, proto::external_transform> {};
+ template <typename Object, typename MemPtr>
+ typename enable_if<
+ is_member_function_pointer<MemPtr>
+ , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
+ >::type
+ operator->*(actor<Object> const& obj, MemPtr ptr)
+ {
+ return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);
+ }
+ namespace result_of
+ {
+ template <
+ typename Env
+ , typename Expr
+ , long Arity = proto::arity_of<Expr>::value
+ >
+ struct mem_fun_ptr_eval;
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 2>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 3>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 4>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 5>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 6>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 7>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 8>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 9>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 10>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 11>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 12>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 13>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 14>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 15>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 16>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 17>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 18>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 19>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 20>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 21>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 22>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 23>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 24>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 25>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 26>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 27>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 28>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 29>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 30>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29
+ )
+ >::type
+ type;
+ };
+ }
+ struct mem_fun_ptr_eval
+ : proto::callable
+ {
+ template<typename Sig>
+ struct result;
+
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env, Expr const &)>
+ : result<This(Env const &, Expr const &)>
+ {};
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env &, Expr const &)>
+ : result_of::mem_fun_ptr_eval<Env, Expr>
+ {};
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ operator()(Env & env, Expr const & expr) const
+ {
+ return
+ this->evaluate(
+ env
+ , expr
+ , typename proto::arity_of<Expr>::type()
+ );
+ }
+ private:
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<2>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<3>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<4>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<5>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<6>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<7>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<8>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<9>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<10>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<11>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<12>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<13>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<14>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<15>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<16>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<17>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<18>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<19>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<20>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<21>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<22>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<23>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<24>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<25>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<26>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<27>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<28>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<29>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<30>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env)
+ );
+ }
+
+ };
+ template <typename Dummy>
+ struct default_actions::when<rule::mem_fun_ptr, Dummy>
+ : proto::call<mem_fun_ptr_eval(_env, proto::_)>
+ {};
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1777 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace rule { struct mem_ptr : proto::binary_expr<proto::tag::mem_ptr, proto::_, proto::_> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : proto::when<rule::mem_ptr, proto::external_transform> {};
+ namespace tag { struct mem_fun_ptr {}; } 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 A37 = void , typename A38 = void , typename A39 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > stru
ct mem_fun_ptr< A0 > : expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 , ty
pename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : 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 > : 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 > : 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 A
4 , 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 > : 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 > : 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 > : 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 > : 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 , A
5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : 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 > : 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 , type
name 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 > : 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 > : 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 , ty
pename A8 , typename A9 , 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : expr< t
ag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 > : 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 > : 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 , t
ypename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 > : 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 , typ
ename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 > : 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 , typena
me A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 > : 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 A
10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 > : 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 , t
ypename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 > : 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 , typenam
e A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 > : 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 > > {}; } template <typename Dummy> struct meta_grammar::case_<tag:: mem_fun_ptr, Dummy> : proto::when<rule:: mem_fun_ptr, proto::external_transform> {};
+ template <typename Object, typename MemPtr>
+ typename enable_if<
+ is_member_function_pointer<MemPtr>
+ , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
+ >::type
+ operator->*(actor<Object> const& obj, MemPtr ptr)
+ {
+ return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);
+ }
+ namespace result_of
+ {
+ template <
+ typename Env
+ , typename Expr
+ , long Arity = proto::arity_of<Expr>::value
+ >
+ struct mem_fun_ptr_eval;
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 2>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 3>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 4>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 5>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 6>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 7>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 8>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 9>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 10>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 11>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 12>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 13>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 14>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 15>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 16>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 17>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 18>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 19>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 20>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 21>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 22>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 23>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 24>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 25>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 26>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 27>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 28>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 29>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 30>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 31>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 32>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 33>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 34>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 35>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 36>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 37>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 38>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 39>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 40>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39
+ )
+ >::type
+ type;
+ };
+ }
+ struct mem_fun_ptr_eval
+ : proto::callable
+ {
+ template<typename Sig>
+ struct result;
+
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env, Expr const &)>
+ : result<This(Env const &, Expr const &)>
+ {};
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env &, Expr const &)>
+ : result_of::mem_fun_ptr_eval<Env, Expr>
+ {};
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ operator()(Env & env, Expr const & expr) const
+ {
+ return
+ this->evaluate(
+ env
+ , expr
+ , typename proto::arity_of<Expr>::type()
+ );
+ }
+ private:
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<2>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<3>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<4>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<5>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<6>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<7>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<8>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<9>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<10>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<11>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<12>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<13>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<14>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<15>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<16>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<17>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<18>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<19>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<20>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<21>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<22>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<23>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<24>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<25>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<26>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<27>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<28>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<29>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<30>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<31>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<32>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<33>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<34>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<35>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<36>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<37>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<38>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<39>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<40>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env)
+ );
+ }
+
+ };
+ template <typename Dummy>
+ struct default_actions::when<rule::mem_fun_ptr, Dummy>
+ : proto::call<mem_fun_ptr_eval(_env, proto::_)>
+ {};
+}}

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/operator/preprocessed/member_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2217 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+namespace boost { namespace phoenix
+{
+ namespace rule { struct mem_ptr : proto::binary_expr<proto::tag::mem_ptr, proto::_, proto::_> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : proto::when<rule::mem_ptr, proto::external_transform> {};
+ namespace tag { struct mem_fun_ptr {}; } 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 A37 = void , typename A38 = void , typename A39 = void , typename A40 = void , typename A41 = void , typename A42 = void , typenam
e 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 > : expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; 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 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : 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 > : 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 , ty
pename 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 > : 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 > : 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 , ty
pename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 , typ
ename 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 > : 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 , 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A1
4 , 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 > : 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 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 > : 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 > : 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 , A2
6 , 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 > : 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 , A2
1 , 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 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 > : 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 > : exp
r< 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 , A2
3 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 > : 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 > : 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 > : 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 , typ
ename A22 , typename 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 > : 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 > : 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 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 > : 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 , typena
me 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 > : 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 > : 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 , ty
pename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 > : expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A1
0 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 > > {}; } template <typename Dummy> struct meta_grammar::case_<tag:: mem_fun_ptr, Dummy> : proto::when<rule:: mem_fun_ptr, proto::external_transform> {};
+ template <typename Object, typename MemPtr>
+ typename enable_if<
+ is_member_function_pointer<MemPtr>
+ , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
+ >::type
+ operator->*(actor<Object> const& obj, MemPtr ptr)
+ {
+ return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);
+ }
+ namespace result_of
+ {
+ template <
+ typename Env
+ , typename Expr
+ , long Arity = proto::arity_of<Expr>::value
+ >
+ struct mem_fun_ptr_eval;
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 2>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 3>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 4>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 5>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 6>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 7>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 8>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 9>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 10>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 11>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 12>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 13>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 14>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 15>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 16>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 17>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 18>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 19>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 20>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 21>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 22>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 23>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 24>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 25>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 26>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 27>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 28>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 29>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 30>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 31>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 32>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 33>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 34>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 35>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 36>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 37>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 38>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 39>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 40>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 41>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 42>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 43>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 44>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 43>::type , Env , int >::result_type child43;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42 , child43
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 45>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 43>::type , Env , int >::result_type child43; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 44>::type , Env , int >::result_type child44;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42 , child43 , child44
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 46>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 43>::type , Env , int >::result_type child43; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 44>::type , Env , int >::result_type child44; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 45>::type , Env , int >::result_type child45;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42 , child43 , child44 , child45
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 47>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 43>::type , Env , int >::result_type child43; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 44>::type , Env , int >::result_type child44; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 45>::type , Env , int >::result_type child45; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 46>::type , Env , int >::result_type child46;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42 , child43 , child44 , child45 , child46
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 48>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 43>::type , Env , int >::result_type child43; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 44>::type , Env , int >::result_type child44; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 45>::type , Env , int >::result_type child45; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 46>::type , Env , int >::result_type child46; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 47>::type , Env , int >::result_type child47;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42 , child43 , child44 , child45 , child46 , child47
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 49>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 43>::type , Env , int >::result_type child43; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 44>::type , Env , int >::result_type child44; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 45>::type , Env , int >::result_type child45; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 46>::type , Env , int >::result_type child46; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 47>::type , Env , int >::result_type child47; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 48>::type , Env , int >::result_type child48;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42 , child43 , child44 , child45 , child46 , child47 , child48
+ )
+ >::type
+ type;
+ };
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ struct mem_fun_ptr_eval<Env, Expr, 50>
+ {
+ typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 0>::type , Env , int >::result_type child0; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 1>::type , Env , int >::result_type child1; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 2>::type , Env , int >::result_type child2; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 3>::type , Env , int >::result_type child3; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 4>::type , Env , int >::result_type child4; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 5>::type , Env , int >::result_type child5; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 6>::type , Env , int >::result_type child6; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 7>::type , Env , int >::result_type child7; typedef typename evaluator::impl< typename proto::result_o
f::child_c<Expr, 8>::type , Env , int >::result_type child8; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 9>::type , Env , int >::result_type child9; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 10>::type , Env , int >::result_type child10; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 11>::type , Env , int >::result_type child11; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 12>::type , Env , int >::result_type child12; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 13>::type , Env , int >::result_type child13; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 14>::type , Env , int >::result_type child14; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 15>::type , Env , int >::result_type child15; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 16>::type , Env , int >::result_type child
16; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 17>::type , Env , int >::result_type child17; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 18>::type , Env , int >::result_type child18; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 19>::type , Env , int >::result_type child19; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 20>::type , Env , int >::result_type child20; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 21>::type , Env , int >::result_type child21; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 22>::type , Env , int >::result_type child22; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 23>::type , Env , int >::result_type child23; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 24>::type , Env , int >::result_type child24; typedef typename evaluator::impl< typename proto::r
esult_of::child_c<Expr, 25>::type , Env , int >::result_type child25; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 26>::type , Env , int >::result_type child26; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 27>::type , Env , int >::result_type child27; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 28>::type , Env , int >::result_type child28; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 29>::type , Env , int >::result_type child29; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 30>::type , Env , int >::result_type child30; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 31>::type , Env , int >::result_type child31; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 32>::type , Env , int >::result_type child32; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 33>::type , Env , int >::result
_type child33; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 34>::type , Env , int >::result_type child34; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 35>::type , Env , int >::result_type child35; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 36>::type , Env , int >::result_type child36; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 37>::type , Env , int >::result_type child37; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 38>::type , Env , int >::result_type child38; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 39>::type , Env , int >::result_type child39; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 40>::type , Env , int >::result_type child40; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 41>::type , Env , int >::result_type child41; typedef typename evaluator::impl< typena
me proto::result_of::child_c<Expr, 42>::type , Env , int >::result_type child42; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 43>::type , Env , int >::result_type child43; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 44>::type , Env , int >::result_type child44; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 45>::type , Env , int >::result_type child45; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 46>::type , Env , int >::result_type child46; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 47>::type , Env , int >::result_type child47; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 48>::type , Env , int >::result_type child48; typedef typename evaluator::impl< typename proto::result_of::child_c<Expr, 49>::type , Env , int >::result_type child49;
+ typedef
+ typename boost::result_of<
+ child1(
+ child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 , child20 , child21 , child22 , child23 , child24 , child25 , child26 , child27 , child28 , child29 , child30 , child31 , child32 , child33 , child34 , child35 , child36 , child37 , child38 , child39 , child40 , child41 , child42 , child43 , child44 , child45 , child46 , child47 , child48 , child49
+ )
+ >::type
+ type;
+ };
+ }
+ struct mem_fun_ptr_eval
+ : proto::callable
+ {
+ template<typename Sig>
+ struct result;
+
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env, Expr const &)>
+ : result<This(Env const &, Expr const &)>
+ {};
+ template <typename This, typename Env, typename Expr>
+ struct result<This(Env &, Expr const &)>
+ : result_of::mem_fun_ptr_eval<Env, Expr>
+ {};
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ operator()(Env & env, Expr const & expr) const
+ {
+ return
+ this->evaluate(
+ env
+ , expr
+ , typename proto::arity_of<Expr>::type()
+ );
+ }
+ private:
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<2>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<3>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<4>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<5>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<6>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<7>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<8>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<9>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<10>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<11>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<12>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<13>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<14>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<15>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<16>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<17>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<18>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<19>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<20>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<21>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<22>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<23>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<24>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<25>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<26>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<27>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<28>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<29>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<30>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<31>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<32>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<33>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<34>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<35>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<36>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<37>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<38>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<39>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<40>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<41>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<42>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<43>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<44>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env) , eval(proto::child_c< 43 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<45>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env) , eval(proto::child_c< 43 >(expr), env) , eval(proto::child_c< 44 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<46>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env) , eval(proto::child_c< 43 >(expr), env) , eval(proto::child_c< 44 >(expr), env) , eval(proto::child_c< 45 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<47>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env) , eval(proto::child_c< 43 >(expr), env) , eval(proto::child_c< 44 >(expr), env) , eval(proto::child_c< 45 >(expr), env) , eval(proto::child_c< 46 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<48>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env) , eval(proto::child_c< 43 >(expr), env) , eval(proto::child_c< 44 >(expr), env) , eval(proto::child_c< 45 >(expr), env) , eval(proto::child_c< 46 >(expr), env) , eval(proto::child_c< 47 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<49>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env) , eval(proto::child_c< 43 >(expr), env) , eval(proto::child_c< 44 >(expr), env) , eval(proto::child_c< 45 >(expr), env) , eval(proto::child_c< 46 >(expr), env) , eval(proto::child_c< 47 >(expr), env) , eval(proto::child_c< 48 >(expr), env)
+ );
+ }
+
+
+
+
+
+
+
+
+
+ template <typename Env, typename Expr>
+ typename result_of::mem_fun_ptr_eval<Env, Expr>::type
+ evaluate(
+ Env & env
+ , Expr const & expr
+ , mpl::long_<50>
+ ) const
+ {
+ return
+ (
+ get_pointer(eval(proto::child_c<0>(expr), env))
+ ->*eval(proto::child_c<1>(expr), env)
+ )(
+ eval(proto::child_c< 2 >(expr), env) , eval(proto::child_c< 3 >(expr), env) , eval(proto::child_c< 4 >(expr), env) , eval(proto::child_c< 5 >(expr), env) , eval(proto::child_c< 6 >(expr), env) , eval(proto::child_c< 7 >(expr), env) , eval(proto::child_c< 8 >(expr), env) , eval(proto::child_c< 9 >(expr), env) , eval(proto::child_c< 10 >(expr), env) , eval(proto::child_c< 11 >(expr), env) , eval(proto::child_c< 12 >(expr), env) , eval(proto::child_c< 13 >(expr), env) , eval(proto::child_c< 14 >(expr), env) , eval(proto::child_c< 15 >(expr), env) , eval(proto::child_c< 16 >(expr), env) , eval(proto::child_c< 17 >(expr), env) , eval(proto::child_c< 18 >(expr), env) , eval(proto::child_c< 19 >(expr), env) , eval(proto::child_c< 20 >(expr), env) , eval(proto::child_c< 21 >(expr), env) , eval(proto::child_c< 22 >(expr), env) , eval(proto::child_c< 23 >(expr), env) , eval(proto::child_c< 24 >(expr), env) , eval(proto::child_c< 25 >(expr), env) , eval(proto::child_c< 26 >(expr), env) , eval(proto
::child_c< 27 >(expr), env) , eval(proto::child_c< 28 >(expr), env) , eval(proto::child_c< 29 >(expr), env) , eval(proto::child_c< 30 >(expr), env) , eval(proto::child_c< 31 >(expr), env) , eval(proto::child_c< 32 >(expr), env) , eval(proto::child_c< 33 >(expr), env) , eval(proto::child_c< 34 >(expr), env) , eval(proto::child_c< 35 >(expr), env) , eval(proto::child_c< 36 >(expr), env) , eval(proto::child_c< 37 >(expr), env) , eval(proto::child_c< 38 >(expr), env) , eval(proto::child_c< 39 >(expr), env) , eval(proto::child_c< 40 >(expr), env) , eval(proto::child_c< 41 >(expr), env) , eval(proto::child_c< 42 >(expr), env) , eval(proto::child_c< 43 >(expr), env) , eval(proto::child_c< 44 >(expr), env) , eval(proto::child_c< 45 >(expr), env) , eval(proto::child_c< 46 >(expr), env) , eval(proto::child_c< 47 >(expr), env) , eval(proto::child_c< 48 >(expr), env) , eval(proto::child_c< 49 >(expr), env)
+ );
+ }
+
+ };
+ template <typename Dummy>
+ struct default_actions::when<rule::mem_fun_ptr, Dummy>
+ : proto::call<mem_fun_ptr_eval(_env, proto::_)>
+ {};
+}}

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP
+#define PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/scope/detail/preprocessed/dynamic.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP
+#define PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/dynamic_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -5,7 +28,10 @@
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !PHOENIX_IS_ITERATING
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_SCOPE_DYNAMIC_MEMBER(_, N, __) \
         typedef \
@@ -23,6 +49,12 @@
 
 #undef PHOENIX_SCOPE_DYNAMIC_MEMBER
 
+#endif
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #else
 
     template <PHOENIX_typename_A>
@@ -58,3 +90,5 @@
     };
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/let_local_gen.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/let_local_gen.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/let_local_gen.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_SCOPE_DETAIL_LET_LOCAL_GEN_HPP
+#define PHOENIX_SCOPE_DETAIL_LET_LOCAL_GEN_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/scope/detail/preprocessed/let_local_gen.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_SCOPE_DETAIL_LET_LOCAL_GEN_HPP
+#define PHOENIX_SCOPE_DETAIL_LET_LOCAL_GEN_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/let_local_gen_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -5,18 +28,20 @@
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_SCOPE_DETAIL_LET_LOCAL_GEN_HPP
-#define PHOENIX_SCOPE_DETAIL_LET_LOCAL_GEN_HPP
 
-#include <boost/phoenix/support/iterate.hpp>
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (2, PHOENIX_LOCAL_LIMIT, \
     <boost/phoenix/scope/detail/let_local_gen.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -31,3 +56,5 @@
         }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_SCOPE_DETAIL_LOCAL_GEN_HPP
+#define PHOENIX_SCOPE_DETAIL_LOCAL_GEN_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/scope/detail/preprocessed/local_gen.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_SCOPE_DETAIL_LOCAL_GEN_HPP
+#define PHOENIX_SCOPE_DETAIL_LOCAL_GEN_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/local_gen_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -6,10 +29,12 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#if !PHOENIX_IS_ITERATING
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_LOCAL_GEN_KEY_TYPES(_, N, __) \
- BOOST_PP_COMMA_IF(N) \
+ BOOST_PP_COMMA_IF(N) \
     typename proto::result_of::value< \
         typename proto::result_of::child_c< \
             typename proto::result_of::child_c<A ## N, 0>::type \
@@ -18,12 +43,12 @@
>::type::type::key_type \
 /**/
 
-#define PHOENIX_LOCAL_GEN_ACTOR(_, N, __) \
- BOOST_PP_COMMA_IF(N) proto::child_c<1>(a ## N) \
+#define PHOENIX_LOCAL_GEN_ACTOR(_, N, __) \
+ BOOST_PP_COMMA_IF(N) proto::child_c<1>(a ## N) \
 /**/
 
-#define PHOENIX_LOCAL_GEN_ACTOR_TYPES(_, n, __) \
- BOOST_PP_COMMA_IF(n) typename proto::result_of::child_c<A ## n, 1>::type \
+#define PHOENIX_LOCAL_GEN_ACTOR_TYPES(_, n, __) \
+ BOOST_PP_COMMA_IF(n) typename proto::result_of::child_c<A ## n, 1>::type \
 /**/
 
 #define PHOENIX_ITERATION_PARAMS \
@@ -35,6 +60,12 @@
 #undef PHOENIX_LOCAL_GEN_ACTOR
 #undef PHOENIX_LOCAL_GEN_ACTOR_TYPES
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif
+
 #else
 
         template <PHOENIX_typename_A>
@@ -50,3 +81,5 @@
         }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/make_locals.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/make_locals.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/make_locals.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
+#define PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/scope/detail/preprocessed/make_locals.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
+#define PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/make_locals_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -5,18 +28,20 @@
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
-#define PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
 
-#include <boost/phoenix/support/iterate.hpp>
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (3, PHOENIX_LOCAL_LIMIT, \
     <boost/phoenix/scope/detail/make_locals.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -61,3 +86,5 @@
         };
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_DYNAMIC)
+#define PHOENIX_PREPROCESSED_DYNAMIC
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/scope/detail/preprocessed/dynamic_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/scope/detail/preprocessed/dynamic_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/scope/detail/preprocessed/dynamic_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/scope/detail/preprocessed/dynamic_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/scope/detail/preprocessed/dynamic_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,347 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0>
+ struct dynamic<A0> : noncopyable
+ {
+ typedef
+ fusion::vector1<A0>
+ tuple_type;
+ typedef
+ dynamic<A0>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ struct dynamic<A0 , A1> : noncopyable
+ {
+ typedef
+ fusion::vector2<A0 , A1>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct dynamic<A0 , A1 , A2> : noncopyable
+ {
+ typedef
+ fusion::vector3<A0 , A1 , A2>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct dynamic<A0 , A1 , A2 , A3> : noncopyable
+ {
+ typedef
+ fusion::vector4<A0 , A1 , A2 , A3>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable
+ {
+ typedef
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable
+ {
+ typedef
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable
+ {
+ typedef
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable
+ {
+ typedef
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable
+ {
+ typedef
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable
+ {
+ typedef
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10;
+ mutable dynamic_frame_type* frame;
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,687 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0>
+ struct dynamic<A0> : noncopyable
+ {
+ typedef
+ fusion::vector1<A0>
+ tuple_type;
+ typedef
+ dynamic<A0>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ struct dynamic<A0 , A1> : noncopyable
+ {
+ typedef
+ fusion::vector2<A0 , A1>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct dynamic<A0 , A1 , A2> : noncopyable
+ {
+ typedef
+ fusion::vector3<A0 , A1 , A2>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct dynamic<A0 , A1 , A2 , A3> : noncopyable
+ {
+ typedef
+ fusion::vector4<A0 , A1 , A2 , A3>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable
+ {
+ typedef
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable
+ {
+ typedef
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable
+ {
+ typedef
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable
+ {
+ typedef
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable
+ {
+ typedef
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable
+ {
+ typedef
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> : noncopyable
+ {
+ typedef
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> : noncopyable
+ {
+ typedef
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> : noncopyable
+ {
+ typedef
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> : noncopyable
+ {
+ typedef
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> : noncopyable
+ {
+ typedef
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> : noncopyable
+ {
+ typedef
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> : noncopyable
+ {
+ typedef
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> : noncopyable
+ {
+ typedef
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> : noncopyable
+ {
+ typedef
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> : noncopyable
+ {
+ typedef
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20;
+ mutable dynamic_frame_type* frame;
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1027 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0>
+ struct dynamic<A0> : noncopyable
+ {
+ typedef
+ fusion::vector1<A0>
+ tuple_type;
+ typedef
+ dynamic<A0>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ struct dynamic<A0 , A1> : noncopyable
+ {
+ typedef
+ fusion::vector2<A0 , A1>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct dynamic<A0 , A1 , A2> : noncopyable
+ {
+ typedef
+ fusion::vector3<A0 , A1 , A2>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct dynamic<A0 , A1 , A2 , A3> : noncopyable
+ {
+ typedef
+ fusion::vector4<A0 , A1 , A2 , A3>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable
+ {
+ typedef
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable
+ {
+ typedef
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable
+ {
+ typedef
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable
+ {
+ typedef
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable
+ {
+ typedef
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable
+ {
+ typedef
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> : noncopyable
+ {
+ typedef
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> : noncopyable
+ {
+ typedef
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> : noncopyable
+ {
+ typedef
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> : noncopyable
+ {
+ typedef
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> : noncopyable
+ {
+ typedef
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> : noncopyable
+ {
+ typedef
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> : noncopyable
+ {
+ typedef
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> : noncopyable
+ {
+ typedef
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> : noncopyable
+ {
+ typedef
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> : noncopyable
+ {
+ typedef
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20> : noncopyable
+ {
+ typedef
+ fusion::vector21<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21> : noncopyable
+ {
+ typedef
+ fusion::vector22<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22> : noncopyable
+ {
+ typedef
+ fusion::vector23<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23> : noncopyable
+ {
+ typedef
+ fusion::vector24<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24> : noncopyable
+ {
+ typedef
+ fusion::vector25<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25> : noncopyable
+ {
+ typedef
+ fusion::vector26<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26> : noncopyable
+ {
+ typedef
+ fusion::vector27<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27> : noncopyable
+ {
+ typedef
+ fusion::vector28<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28> : noncopyable
+ {
+ typedef
+ fusion::vector29<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29> : noncopyable
+ {
+ typedef
+ fusion::vector30<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30;
+ mutable dynamic_frame_type* frame;
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1367 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0>
+ struct dynamic<A0> : noncopyable
+ {
+ typedef
+ fusion::vector1<A0>
+ tuple_type;
+ typedef
+ dynamic<A0>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ struct dynamic<A0 , A1> : noncopyable
+ {
+ typedef
+ fusion::vector2<A0 , A1>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct dynamic<A0 , A1 , A2> : noncopyable
+ {
+ typedef
+ fusion::vector3<A0 , A1 , A2>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct dynamic<A0 , A1 , A2 , A3> : noncopyable
+ {
+ typedef
+ fusion::vector4<A0 , A1 , A2 , A3>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable
+ {
+ typedef
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable
+ {
+ typedef
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable
+ {
+ typedef
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable
+ {
+ typedef
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable
+ {
+ typedef
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable
+ {
+ typedef
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> : noncopyable
+ {
+ typedef
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> : noncopyable
+ {
+ typedef
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> : noncopyable
+ {
+ typedef
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> : noncopyable
+ {
+ typedef
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> : noncopyable
+ {
+ typedef
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> : noncopyable
+ {
+ typedef
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> : noncopyable
+ {
+ typedef
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> : noncopyable
+ {
+ typedef
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> : noncopyable
+ {
+ typedef
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> : noncopyable
+ {
+ typedef
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20> : noncopyable
+ {
+ typedef
+ fusion::vector21<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21> : noncopyable
+ {
+ typedef
+ fusion::vector22<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22> : noncopyable
+ {
+ typedef
+ fusion::vector23<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23> : noncopyable
+ {
+ typedef
+ fusion::vector24<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24> : noncopyable
+ {
+ typedef
+ fusion::vector25<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25> : noncopyable
+ {
+ typedef
+ fusion::vector26<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26> : noncopyable
+ {
+ typedef
+ fusion::vector27<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27> : noncopyable
+ {
+ typedef
+ fusion::vector28<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28> : noncopyable
+ {
+ typedef
+ fusion::vector29<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29> : noncopyable
+ {
+ typedef
+ fusion::vector30<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30> : noncopyable
+ {
+ typedef
+ fusion::vector31<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31> : noncopyable
+ {
+ typedef
+ fusion::vector32<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32> : noncopyable
+ {
+ typedef
+ fusion::vector33<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33> : noncopyable
+ {
+ typedef
+ fusion::vector34<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34> : noncopyable
+ {
+ typedef
+ fusion::vector35<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35> : noncopyable
+ {
+ typedef
+ fusion::vector36<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36> : noncopyable
+ {
+ typedef
+ fusion::vector37<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37> : noncopyable
+ {
+ typedef
+ fusion::vector38<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38> : noncopyable
+ {
+ typedef
+ fusion::vector39<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39> : noncopyable
+ {
+ typedef
+ fusion::vector40<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40;
+ mutable dynamic_frame_type* frame;
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/dynamic_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1707 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0>
+ struct dynamic<A0> : noncopyable
+ {
+ typedef
+ fusion::vector1<A0>
+ tuple_type;
+ typedef
+ dynamic<A0>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ struct dynamic<A0 , A1> : noncopyable
+ {
+ typedef
+ fusion::vector2<A0 , A1>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct dynamic<A0 , A1 , A2> : noncopyable
+ {
+ typedef
+ fusion::vector3<A0 , A1 , A2>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct dynamic<A0 , A1 , A2 , A3> : noncopyable
+ {
+ typedef
+ fusion::vector4<A0 , A1 , A2 , A3>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable
+ {
+ typedef
+ fusion::vector5<A0 , A1 , A2 , A3 , A4>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable
+ {
+ typedef
+ fusion::vector6<A0 , A1 , A2 , A3 , A4 , A5>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable
+ {
+ typedef
+ fusion::vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable
+ {
+ typedef
+ fusion::vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable
+ {
+ typedef
+ fusion::vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable
+ {
+ typedef
+ fusion::vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> : noncopyable
+ {
+ typedef
+ fusion::vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> : noncopyable
+ {
+ typedef
+ fusion::vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> : noncopyable
+ {
+ typedef
+ fusion::vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> : noncopyable
+ {
+ typedef
+ fusion::vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> : noncopyable
+ {
+ typedef
+ fusion::vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> : noncopyable
+ {
+ typedef
+ fusion::vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> : noncopyable
+ {
+ typedef
+ fusion::vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> : noncopyable
+ {
+ typedef
+ fusion::vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> : noncopyable
+ {
+ typedef
+ fusion::vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> : noncopyable
+ {
+ typedef
+ fusion::vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20> : noncopyable
+ {
+ typedef
+ fusion::vector21<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21> : noncopyable
+ {
+ typedef
+ fusion::vector22<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22> : noncopyable
+ {
+ typedef
+ fusion::vector23<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23> : noncopyable
+ {
+ typedef
+ fusion::vector24<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24> : noncopyable
+ {
+ typedef
+ fusion::vector25<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25> : noncopyable
+ {
+ typedef
+ fusion::vector26<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26> : noncopyable
+ {
+ typedef
+ fusion::vector27<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27> : noncopyable
+ {
+ typedef
+ fusion::vector28<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28> : noncopyable
+ {
+ typedef
+ fusion::vector29<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29> : noncopyable
+ {
+ typedef
+ fusion::vector30<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30> : noncopyable
+ {
+ typedef
+ fusion::vector31<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31> : noncopyable
+ {
+ typedef
+ fusion::vector32<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32> : noncopyable
+ {
+ typedef
+ fusion::vector33<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33> : noncopyable
+ {
+ typedef
+ fusion::vector34<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34> : noncopyable
+ {
+ typedef
+ fusion::vector35<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35> : noncopyable
+ {
+ typedef
+ fusion::vector36<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36> : noncopyable
+ {
+ typedef
+ fusion::vector37<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37> : noncopyable
+ {
+ typedef
+ fusion::vector38<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38> : noncopyable
+ {
+ typedef
+ fusion::vector39<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39> : noncopyable
+ {
+ typedef
+ fusion::vector40<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40> : noncopyable
+ {
+ typedef
+ fusion::vector41<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41> : noncopyable
+ {
+ typedef
+ fusion::vector42<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42> : noncopyable
+ {
+ typedef
+ fusion::vector43<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> : noncopyable
+ {
+ typedef
+ fusion::vector44<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43; typedef typename expression::dynamic_member< mpl::int_<43> , self_type * >::type member44;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> : noncopyable
+ {
+ typedef
+ fusion::vector45<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43; typedef typename expression::dynamic_member< mpl::int_<43> , self_type * >::type member44; typedef typename expression::dynamic_member< mpl::int_<44> , self_type * >::type member45;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> : noncopyable
+ {
+ typedef
+ fusion::vector46<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43; typedef typename expression::dynamic_member< mpl::int_<43> , self_type * >::type member44; typedef typename expression::dynamic_member< mpl::int_<44> , self_type * >::type member45; typedef
 typename expression::dynamic_member< mpl::int_<45> , self_type * >::type member46;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> : noncopyable
+ {
+ typedef
+ fusion::vector47<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43; typedef typename expression::dynamic_member< mpl::int_<43> , self_type * >::type member44; typedef typename expression::dynamic_member< mpl::int_<44> , self_type * >::type member45; typedef
 typename expression::dynamic_member< mpl::int_<45> , self_type * >::type member46; typedef typename expression::dynamic_member< mpl::int_<46> , self_type * >::type member47;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> : noncopyable
+ {
+ typedef
+ fusion::vector48<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43; typedef typename expression::dynamic_member< mpl::int_<43> , self_type * >::type member44; typedef typename expression::dynamic_member< mpl::int_<44> , self_type * >::type member45; typedef
 typename expression::dynamic_member< mpl::int_<45> , self_type * >::type member46; typedef typename expression::dynamic_member< mpl::int_<46> , self_type * >::type member47; typedef typename expression::dynamic_member< mpl::int_<47> , self_type * >::type member48;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> : noncopyable
+ {
+ typedef
+ fusion::vector49<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43; typedef typename expression::dynamic_member< mpl::int_<43> , self_type * >::type member44; typedef typename expression::dynamic_member< mpl::int_<44> , self_type * >::type member45; typedef
 typename expression::dynamic_member< mpl::int_<45> , self_type * >::type member46; typedef typename expression::dynamic_member< mpl::int_<46> , self_type * >::type member47; typedef typename expression::dynamic_member< mpl::int_<47> , self_type * >::type member48; typedef typename expression::dynamic_member< mpl::int_<48> , self_type * >::type member49;
+ mutable dynamic_frame_type* frame;
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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> : noncopyable
+ {
+ typedef
+ fusion::vector50<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ tuple_type;
+ typedef
+ dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ self_type;
+ typedef
+ dynamic_frame<self_type>
+ dynamic_frame_type;
+ dynamic()
+ : frame(0) {}
+ template <int N>
+ static
+ typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
+ init(self_type * scope)
+ {
+ return
+ expression::
+ dynamic_member<mpl::int_<N>, self_type *>::
+ make(mpl::int_<N>(), scope);
+ }
+ typedef typename expression::dynamic_member< mpl::int_<0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_<1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_<2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_<3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_<4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_<5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_<6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_<7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_<8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_<9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_<10> , self_type * >::type member11; typedef typename expression::dyn
amic_member< mpl::int_<11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_<12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_<13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_<14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_<15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_<16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_<17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_<18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_<19> , self_type * >::type member20; typedef typename expression::dynamic_member< mpl::int_<20> , self_type * >::type member21; typedef typename expression::dynamic_member< mpl::int_<21> , self_type * >::type member22; typedef typename expression::dynamic_member< mpl::int_
<22> , self_type * >::type member23; typedef typename expression::dynamic_member< mpl::int_<23> , self_type * >::type member24; typedef typename expression::dynamic_member< mpl::int_<24> , self_type * >::type member25; typedef typename expression::dynamic_member< mpl::int_<25> , self_type * >::type member26; typedef typename expression::dynamic_member< mpl::int_<26> , self_type * >::type member27; typedef typename expression::dynamic_member< mpl::int_<27> , self_type * >::type member28; typedef typename expression::dynamic_member< mpl::int_<28> , self_type * >::type member29; typedef typename expression::dynamic_member< mpl::int_<29> , self_type * >::type member30; typedef typename expression::dynamic_member< mpl::int_<30> , self_type * >::type member31; typedef typename expression::dynamic_member< mpl::int_<31> , self_type * >::type member32; typedef typename expression::dynamic_member< mpl::int_<32> , self_type * >::type member33; typedef typename expression::dynamic_member< mpl::int_<33> , self_type * >::
type member34; typedef typename expression::dynamic_member< mpl::int_<34> , self_type * >::type member35; typedef typename expression::dynamic_member< mpl::int_<35> , self_type * >::type member36; typedef typename expression::dynamic_member< mpl::int_<36> , self_type * >::type member37; typedef typename expression::dynamic_member< mpl::int_<37> , self_type * >::type member38; typedef typename expression::dynamic_member< mpl::int_<38> , self_type * >::type member39; typedef typename expression::dynamic_member< mpl::int_<39> , self_type * >::type member40; typedef typename expression::dynamic_member< mpl::int_<40> , self_type * >::type member41; typedef typename expression::dynamic_member< mpl::int_<41> , self_type * >::type member42; typedef typename expression::dynamic_member< mpl::int_<42> , self_type * >::type member43; typedef typename expression::dynamic_member< mpl::int_<43> , self_type * >::type member44; typedef typename expression::dynamic_member< mpl::int_<44> , self_type * >::type member45; typedef
 typename expression::dynamic_member< mpl::int_<45> , self_type * >::type member46; typedef typename expression::dynamic_member< mpl::int_<46> , self_type * >::type member47; typedef typename expression::dynamic_member< mpl::int_<47> , self_type * >::type member48; typedef typename expression::dynamic_member< mpl::int_<48> , self_type * >::type member49; typedef typename expression::dynamic_member< mpl::int_<49> , self_type * >::type member50;
+ mutable dynamic_frame_type* frame;
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_LET_LOCAL_GEN)
+#define PHOENIX_PREPROCESSED_LET_LOCAL_GEN
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/scope/detail/preprocessed/let_local_gen_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/scope/detail/preprocessed/let_local_gen_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/scope/detail/preprocessed/let_local_gen_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/scope/detail/preprocessed/let_local_gen_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/scope/detail/preprocessed/let_local_gen_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,142 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return detail::make_locals<A0 , A1>::make(a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return detail::make_locals<A0 , A1 , A2>::make(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return detail::make_locals<A0 , A1 , A2 , A3>::make(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4>::make(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5>::make(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,292 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return detail::make_locals<A0 , A1>::make(a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return detail::make_locals<A0 , A1 , A2>::make(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return detail::make_locals<A0 , A1 , A2 , A3>::make(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4>::make(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5>::make(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,442 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return detail::make_locals<A0 , A1>::make(a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return detail::make_locals<A0 , A1 , A2>::make(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return detail::make_locals<A0 , A1 , A2 , A3>::make(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4>::make(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5>::make(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<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(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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , 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 detail::make_locals<A0 , 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(a0 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , 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 detail::make_locals<A0 , A1 , 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(a0 , a1 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , 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 detail::make_locals<A0 , A1 , A2 , 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(a0 , a1 , a2 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , 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 detail::make_locals<A0 , A1 , A2 , A3 , 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(a0 , a1 , a2 , a3 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , 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(a0 , a1 , a2 , a3 , a4 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,592 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return detail::make_locals<A0 , A1>::make(a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return detail::make_locals<A0 , A1 , A2>::make(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return detail::make_locals<A0 , A1 , A2 , A3>::make(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4>::make(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5>::make(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<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(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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , 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 detail::make_locals<A0 , 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(a0 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , 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 detail::make_locals<A0 , A1 , 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(a0 , a1 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , 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 detail::make_locals<A0 , A1 , A2 , 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(a0 , a1 , a2 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , 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 detail::make_locals<A0 , A1 , A2 , A3 , 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(a0 , a1 , a2 , a3 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , 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(a0 , a1 , a2 , a3 , a4 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , 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(a0 , a1 , a2 , a3 , a4 , a5 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 A33>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 A35>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 A38>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/let_local_gen_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,742 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1) const
+ {
+ return detail::make_locals<A0 , A1>::make(a0 , a1);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ return detail::make_locals<A0 , A1 , A2>::make(a0 , a1 , a2);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3>::type
+ > const
+ operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ return detail::make_locals<A0 , A1 , A2 , A3>::make(a0 , a1 , a2 , a3);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4>::make(a0 , a1 , a2 , a3 , a4);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5>::make(a0 , a1 , a2 , a3 , a4 , a5);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ }
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(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>
+ let_actor_gen<
+ typename detail::make_locals<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 detail::make_locals<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(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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , 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 detail::make_locals<A0 , 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(a0 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , 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 detail::make_locals<A0 , A1 , 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(a0 , a1 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , 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 detail::make_locals<A0 , A1 , A2 , 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(a0 , a1 , a2 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , 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 detail::make_locals<A0 , A1 , A2 , A3 , 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(a0 , a1 , a2 , a3 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , 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(a0 , a1 , a2 , a3 , a4 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , 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(a0 , a1 , a2 , a3 , a4 , a5 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 A33>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 A35>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 A38>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 A45>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 A49>
+ let_actor_gen<
+ typename detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 detail::make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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);
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_MAKE_LOCALS)
+#define PHOENIX_PREPROCESSED_MAKE_LOCALS
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/scope/detail/preprocessed/make_locals_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/scope/detail/preprocessed/make_locals_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/scope/detail/preprocessed/make_locals_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/scope/detail/preprocessed/make_locals_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/scope/detail/preprocessed/make_locals_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,303 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct make_locals<A0 , A1 , A2>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A2
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2)
+ {
+ return
+ expression::sequence<
+ type0
+ , A2
+ >::make(
+ make_locals<
+ A0 , A1
+ >::make(
+ a0 , a1
+ )
+ , a2
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct make_locals<A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A3
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ return
+ expression::sequence<
+ type0
+ , A3
+ >::make(
+ make_locals<
+ A0 , A1 , A2
+ >::make(
+ a0 , a1 , a2
+ )
+ , a3
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct make_locals<A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A4
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ return
+ expression::sequence<
+ type0
+ , A4
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3
+ >::make(
+ a0 , a1 , a2 , a3
+ )
+ , a4
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A5
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ return
+ expression::sequence<
+ type0
+ , A5
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::make(
+ a0 , a1 , a2 , a3 , a4
+ )
+ , a5
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A6
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ return
+ expression::sequence<
+ type0
+ , A6
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A7
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ return
+ expression::sequence<
+ type0
+ , A7
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A8
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ return
+ expression::sequence<
+ type0
+ , A8
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A9
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ return
+ expression::sequence<
+ type0
+ , A9
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::make(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
+ )
+ , a9
+ );
+ }
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,673 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct make_locals<A0 , A1 , A2>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A2
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2)
+ {
+ return
+ expression::sequence<
+ type0
+ , A2
+ >::make(
+ make_locals<
+ A0 , A1
+ >::make(
+ a0 , a1
+ )
+ , a2
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct make_locals<A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A3
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ return
+ expression::sequence<
+ type0
+ , A3
+ >::make(
+ make_locals<
+ A0 , A1 , A2
+ >::make(
+ a0 , a1 , a2
+ )
+ , a3
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct make_locals<A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A4
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ return
+ expression::sequence<
+ type0
+ , A4
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3
+ >::make(
+ a0 , a1 , a2 , a3
+ )
+ , a4
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A5
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ return
+ expression::sequence<
+ type0
+ , A5
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::make(
+ a0 , a1 , a2 , a3 , a4
+ )
+ , a5
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A6
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ return
+ expression::sequence<
+ type0
+ , A6
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A7
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ return
+ expression::sequence<
+ type0
+ , A7
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A8
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ return
+ expression::sequence<
+ type0
+ , A8
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A9
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ return
+ expression::sequence<
+ type0
+ , A9
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A10
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ return
+ expression::sequence<
+ type0
+ , A10
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A11
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ return
+ expression::sequence<
+ type0
+ , A11
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A12
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A12
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A13
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A13
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A14
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A14
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A15
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A15
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A16
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A16
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A17
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A17
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A18
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A18
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A19
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A19
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::make(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
+ )
+ , a19
+ );
+ }
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1043 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct make_locals<A0 , A1 , A2>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A2
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2)
+ {
+ return
+ expression::sequence<
+ type0
+ , A2
+ >::make(
+ make_locals<
+ A0 , A1
+ >::make(
+ a0 , a1
+ )
+ , a2
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct make_locals<A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A3
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ return
+ expression::sequence<
+ type0
+ , A3
+ >::make(
+ make_locals<
+ A0 , A1 , A2
+ >::make(
+ a0 , a1 , a2
+ )
+ , a3
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct make_locals<A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A4
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ return
+ expression::sequence<
+ type0
+ , A4
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3
+ >::make(
+ a0 , a1 , a2 , a3
+ )
+ , a4
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A5
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ return
+ expression::sequence<
+ type0
+ , A5
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::make(
+ a0 , a1 , a2 , a3 , a4
+ )
+ , a5
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A6
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ return
+ expression::sequence<
+ type0
+ , A6
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A7
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ return
+ expression::sequence<
+ type0
+ , A7
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A8
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ return
+ expression::sequence<
+ type0
+ , A8
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A9
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ return
+ expression::sequence<
+ type0
+ , A9
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A10
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ return
+ expression::sequence<
+ type0
+ , A10
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A11
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ return
+ expression::sequence<
+ type0
+ , A11
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A12
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A12
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A13
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A13
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A14
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A14
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A15
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A15
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A16
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A16
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A17
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A17
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A18
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A18
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A19
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A19
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A20
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A20
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A21
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A21
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A22
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A22
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ {
+ typedef
+ typename make_locals<
+ 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A23
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A23
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ {
+ typedef
+ typename make_locals<
+ 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A24
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A24
+ >::make(
+ make_locals<
+ 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(
+ a0 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ {
+ typedef
+ typename make_locals<
+ A0 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A25
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A25
+ >::make(
+ make_locals<
+ A0 , 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(
+ a0 , a1 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A26
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A26
+ >::make(
+ make_locals<
+ A0 , A1 , 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(
+ a0 , a1 , a2 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A27
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A27
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , 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(
+ a0 , a1 , a2 , a3 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A28
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A28
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , 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(
+ a0 , a1 , a2 , a3 , a4 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A29
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A29
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28
+ )
+ , a29
+ );
+ }
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1413 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct make_locals<A0 , A1 , A2>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A2
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2)
+ {
+ return
+ expression::sequence<
+ type0
+ , A2
+ >::make(
+ make_locals<
+ A0 , A1
+ >::make(
+ a0 , a1
+ )
+ , a2
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct make_locals<A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A3
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ return
+ expression::sequence<
+ type0
+ , A3
+ >::make(
+ make_locals<
+ A0 , A1 , A2
+ >::make(
+ a0 , a1 , a2
+ )
+ , a3
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct make_locals<A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A4
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ return
+ expression::sequence<
+ type0
+ , A4
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3
+ >::make(
+ a0 , a1 , a2 , a3
+ )
+ , a4
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A5
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ return
+ expression::sequence<
+ type0
+ , A5
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::make(
+ a0 , a1 , a2 , a3 , a4
+ )
+ , a5
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A6
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ return
+ expression::sequence<
+ type0
+ , A6
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A7
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ return
+ expression::sequence<
+ type0
+ , A7
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A8
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ return
+ expression::sequence<
+ type0
+ , A8
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A9
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ return
+ expression::sequence<
+ type0
+ , A9
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A10
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ return
+ expression::sequence<
+ type0
+ , A10
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A11
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ return
+ expression::sequence<
+ type0
+ , A11
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A12
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A12
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A13
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A13
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A14
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A14
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A15
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A15
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A16
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A16
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A17
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A17
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A18
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A18
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A19
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A19
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A20
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A20
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A21
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A21
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A22
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A22
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ {
+ typedef
+ typename make_locals<
+ 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A23
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A23
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ {
+ typedef
+ typename make_locals<
+ 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A24
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A24
+ >::make(
+ make_locals<
+ 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(
+ a0 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ {
+ typedef
+ typename make_locals<
+ A0 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A25
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A25
+ >::make(
+ make_locals<
+ A0 , 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(
+ a0 , a1 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A26
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A26
+ >::make(
+ make_locals<
+ A0 , A1 , 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(
+ a0 , a1 , a2 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A27
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A27
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , 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(
+ a0 , a1 , a2 , a3 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A28
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A28
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , 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(
+ a0 , a1 , a2 , a3 , a4 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A29
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A29
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A30
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A30
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A31
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A31
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A32
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A32
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 A33>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A33
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A33
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A34
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A34
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 A35>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A35
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A35
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A36
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A36
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A37
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A37
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 A38>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A38
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A38
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A39
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A39
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38
+ )
+ , a39
+ );
+ }
+ };

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/preprocessed/make_locals_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1783 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2>
+ struct make_locals<A0 , A1 , A2>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A2
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2)
+ {
+ return
+ expression::sequence<
+ type0
+ , A2
+ >::make(
+ make_locals<
+ A0 , A1
+ >::make(
+ a0 , a1
+ )
+ , a2
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3>
+ struct make_locals<A0 , A1 , A2 , A3>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A3
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3)
+ {
+ return
+ expression::sequence<
+ type0
+ , A3
+ >::make(
+ make_locals<
+ A0 , A1 , A2
+ >::make(
+ a0 , a1 , a2
+ )
+ , a3
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct make_locals<A0 , A1 , A2 , A3 , A4>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A4
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4)
+ {
+ return
+ expression::sequence<
+ type0
+ , A4
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3
+ >::make(
+ a0 , a1 , a2 , a3
+ )
+ , a4
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A5
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5)
+ {
+ return
+ expression::sequence<
+ type0
+ , A5
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4
+ >::make(
+ a0 , a1 , a2 , a3 , a4
+ )
+ , a5
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A6
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6)
+ {
+ return
+ expression::sequence<
+ type0
+ , A6
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A7
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7)
+ {
+ return
+ expression::sequence<
+ type0
+ , A7
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A8
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8)
+ {
+ return
+ expression::sequence<
+ type0
+ , A8
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A9
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9)
+ {
+ return
+ expression::sequence<
+ type0
+ , A9
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A10
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10)
+ {
+ return
+ expression::sequence<
+ type0
+ , A10
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A11
+ >::type
+ type;
+ static type const make(A0 a0 , A1 a1 , A2 a2 , A3 a3 , A4 a4 , A5 a5 , A6 a6 , A7 a7 , A8 a8 , A9 a9 , A10 a10 , A11 a11)
+ {
+ return
+ expression::sequence<
+ type0
+ , A11
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A12
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A12
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A13
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A13
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A14
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A14
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A15
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A15
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A16
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A16
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A17
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A17
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A18
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A18
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A19
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A19
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A20
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A20
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A21
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A21
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::type const
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A22
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A22
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ {
+ typedef
+ typename make_locals<
+ 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A23
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A23
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
+ >::make(
+ 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ {
+ typedef
+ typename make_locals<
+ 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A24
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A24
+ >::make(
+ make_locals<
+ 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(
+ a0 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ {
+ typedef
+ typename make_locals<
+ A0 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A25
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A25
+ >::make(
+ make_locals<
+ A0 , 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(
+ a0 , a1 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A26
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A26
+ >::make(
+ make_locals<
+ A0 , A1 , 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(
+ a0 , a1 , a2 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A27
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A27
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , 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(
+ a0 , a1 , a2 , a3 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A28
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A28
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , 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(
+ a0 , a1 , a2 , a3 , a4 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A29
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A29
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A30
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A30
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A31
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A31
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A32
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A32
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , 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 A33>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A33
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A33
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A34
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A34
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , 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 A35>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A35
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A35
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A36
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A36
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A37
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A37
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , 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 A38>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A38
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A38
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A39
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A39
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A40
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A40
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A41
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A41
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A42
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A42
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A43
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A43
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A44
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A44
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 A45>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A45
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A45
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A46
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A46
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A47
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A47
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A48
+ >::type
+ type;
+ static type const make(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)
+ {
+ return
+ expression::sequence<
+ type0
+ , A48
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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 A49>
+ struct make_locals<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ {
+ typedef
+ typename make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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
+ type0;
+ typedef
+ typename expression::sequence<
+ type0
+ , A49
+ >::type
+ type;
+ static type const make(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 , A49 a49)
+ {
+ return
+ expression::sequence<
+ type0
+ , A49
+ >::make(
+ make_locals<
+ A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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(
+ a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , 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: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/catch_push_back.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/catch_push_back.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/catch_push_back.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_STATEMENT_DETAIL_CATCH_PUSH_BACK_HPP
+#define PHOENIX_STATEMENT_DETAIL_CATCH_PUSH_BACK_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/statement/detail/preprocessed/catch_push_back.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_STATEMENT_DETAIL_CATCH_PUSH_BACK_HPP
+#define PHOENIX_STATEMENT_DETAIL_CATCH_PUSH_BACK_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/catch_push_back_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -5,13 +28,11 @@
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !PHOENIX_IS_ITERATING
 
-#ifndef PHOENIX_STATEMENT_DETAIL_CATCH_PUSH_BACK_HPP
-#define PHOENIX_STATEMENT_DETAIL_CATCH_PUSH_BACK_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
-#include <boost/phoenix/support/iterate.hpp>
-
     #define PHOENIX_CATCH_PUSH_BACK_R0(Z, N, DATA) \
         BOOST_PP_COMMA_IF(N) \
         typename proto::result_of::child_c<TryCatch, N>::type \
@@ -29,6 +50,10 @@
     #undef PHOENIX_CATCH_PUSH_BACK_R0
     #undef PHOENIX_CATCH_PUSH_BACK_R1
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -108,3 +133,5 @@
         };
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_CATCH_PUSH_BACK)
+#define PHOENIX_PREPROCESSED_CATCH_PUSH_BACK
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,629 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1319 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2009 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 21>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 21>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 22>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 22>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 23>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 23>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 24>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 24>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 25>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 25>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 26>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 26>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 27>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 27>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 28>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 28>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 29>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 29>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 30>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 30>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2699 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 21>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 21>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 22>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 22>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 23>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 23>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 24>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 24>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 25>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 25>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 26>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 26>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 27>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 27>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 28>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 28>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 29>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 29>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 30>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 30>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 31>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 31>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 32>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 32>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 33>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 33>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 34>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 34>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 35>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 35>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 36>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 36>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 37>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 37>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 38>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 38>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 39>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 39>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 40>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 40>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,3389 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 2>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef 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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
+ , proto::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 3>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ 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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 4>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 5>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 6>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 7>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 8>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 9>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 10>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 11>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 12>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 13>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 14>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 15>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 16>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 17>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 18>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 19>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 20>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 21>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 21>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 22>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 22>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 23>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 23>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 24>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 24>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 25>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 25>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 26>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 26>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 27>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 27>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 28>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 28>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 29>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 29>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 30>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 30>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 31>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 31>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 32>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 32>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 33>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 33>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 34>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 34>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 35>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 35>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 36>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 36>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 37>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 37>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 38>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 38>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 39>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 39>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 40>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 40>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 41>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 41>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 42>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 42>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 43>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 43>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 44>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 44>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 45>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 45>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 46>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 46>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 47>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 47>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 48>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 48>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 49>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 49>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+
+
+
+
+
+
+
+ template <typename TryCatch, typename Exception, typename Expr>
+ struct catch_push_back<TryCatch, Exception, Expr, 50>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_
+ , default_domain_with_basic_expr
+ , catch_exception<Exception>
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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_
+ , default_domain_with_basic_expr
+ >(catch_exception<Exception>(), catch_)
+ );
+ }
+ };
+
+ template <typename TryCatch, typename Expr>
+ struct catch_all_push_back<TryCatch, Expr, 50>
+ {
+ typedef
+ typename proto::result_of::make_expr<
+ tag::catch_all
+ , default_domain_with_basic_expr
+ , Expr
+ >::type
+ catch_expr;
+ typedef expression::try_catch<
+ typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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;
+ static type
+ make(
+ TryCatch const& try_catch
+ , Expr const& catch_
+ )
+ {
+ return
+ gen_type::make(
+ proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::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
+ , default_domain_with_basic_expr
+ >(catch_)
+ );
+ }
+ };
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_SWITCH)
+#define PHOENIX_PREPROCESSED_SWITCH
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/statement/detail/preprocessed/switch_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/statement/detail/preprocessed/switch_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/statement/detail/preprocessed/switch_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/statement/detail/preprocessed/switch_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/statement/detail/preprocessed/switch_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,580 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::false_
+ ) const
+ {
+
+ switch(eval(cond, env))
+ {
+
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<1> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<2> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ mpl::int_<1>
+ idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx1
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<3> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ mpl::int_<2>
+ idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx2
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<4> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ mpl::int_<3>
+ idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx3
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<5> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ mpl::int_<4>
+ idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx4
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<6> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ mpl::int_<5>
+ idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx5
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<7> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ mpl::int_<6>
+ idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx6
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<8> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ mpl::int_<7>
+ idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx7
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< detail::sw
itch_grammar( Cases , mpl::int_<8> , mpl::int_<9> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ mpl::int_<8>
+ idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx8
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<10> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ mpl::int_<9>
+ idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx9
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1100 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::false_
+ ) const
+ {
+
+ switch(eval(cond, env))
+ {
+
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<1> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<2> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ mpl::int_<1>
+ idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx1
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<3> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ mpl::int_<2>
+ idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx2
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<4> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ mpl::int_<3>
+ idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx3
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<5> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ mpl::int_<4>
+ idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx4
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<6> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ mpl::int_<5>
+ idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx5
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<7> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ mpl::int_<6>
+ idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx6
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<8> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ mpl::int_<7>
+ idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx7
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< detail::sw
itch_grammar( Cases , mpl::int_<8> , mpl::int_<9> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ mpl::int_<8>
+ idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx8
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<10> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ mpl::int_<9>
+ idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx9
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<11> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ mpl::int_<10>
+ idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx10
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<12> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ mpl::int_<11>
+ idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx11
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<13> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ mpl::int_<12>
+ idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx12
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<14> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ mpl::int_<13>
+ idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx13
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<15> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ mpl::int_<14>
+ idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx14
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<16> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ mpl::int_<15>
+ idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx15
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<17> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ mpl::int_<16>
+ idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx16
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<18> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ mpl::int_<17>
+ idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx17
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<19> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ mpl::int_<18>
+ idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx18
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<20> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ mpl::int_<19>
+ idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx19
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1620 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::false_
+ ) const
+ {
+
+ switch(eval(cond, env))
+ {
+
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<1> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<2> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ mpl::int_<1>
+ idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx1
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<3> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ mpl::int_<2>
+ idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx2
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<4> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ mpl::int_<3>
+ idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx3
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<5> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ mpl::int_<4>
+ idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx4
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<6> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ mpl::int_<5>
+ idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx5
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<7> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ mpl::int_<6>
+ idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx6
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<8> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ mpl::int_<7>
+ idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx7
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< detail::sw
itch_grammar( Cases , mpl::int_<8> , mpl::int_<9> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ mpl::int_<8>
+ idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx8
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<10> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ mpl::int_<9>
+ idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx9
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<11> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ mpl::int_<10>
+ idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx10
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<12> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ mpl::int_<11>
+ idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx11
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<13> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ mpl::int_<12>
+ idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx12
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<14> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ mpl::int_<13>
+ idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx13
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<15> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ mpl::int_<14>
+ idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx14
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<16> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ mpl::int_<15>
+ idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx15
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<17> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ mpl::int_<16>
+ idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx16
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<18> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ mpl::int_<17>
+ idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx17
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<19> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ mpl::int_<18>
+ idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx18
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<20> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ mpl::int_<19>
+ idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx19
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<21> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<21> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<21> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<21> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<21> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<21> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<21> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<21> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<21> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<21> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<21> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<21> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<21> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<21> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<21> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<21> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<21> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<21> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<21> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<21> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<21> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<21> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<21> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<21> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<21> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<21> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<21> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<21> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<21> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<21> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<21> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<21> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<21> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<21> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<21> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<21> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<21> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<21> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<21> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<21> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<21> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<21> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<21> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19;
+ mpl::int_<20>
+ idx20;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx20
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<22> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<22> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<22> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<22> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<22> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<22> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<22> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<22> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<22> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<22> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<22> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<22> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<22> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<22> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<22> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<22> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<22> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<22> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<22> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<22> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<22> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<22> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<22> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<22> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<22> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<22> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<22> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<22> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<22> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<22> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<22> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<22> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<22> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<22> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<22> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<22> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<22> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<22> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<22> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<22> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<22> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<22> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<22> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<22> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<22> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20;
+ mpl::int_<21>
+ idx21;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx21
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<23> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<23> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<23> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<23> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<23> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<23> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<23> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<23> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<23> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<23> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<23> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<23> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<23> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<23> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<23> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<23> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<23> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<23> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<23> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<23> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<23> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<23> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<23> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<23> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<23> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<23> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<23> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<23> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<23> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<23> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<23> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<23> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<23> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<23> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<23> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<23> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<23> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<23> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<23> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<23> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<23> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<23> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<23> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<23> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<23> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<23> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<23> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21;
+ mpl::int_<22>
+ idx22;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx22
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<24> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<24> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<24> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<24> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<24> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<24> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<24> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<24> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<24> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<24> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<24> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<24> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<24> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<24> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<24> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<24> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<24> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<24> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<24> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<24> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<24> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<24> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<24> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<24> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<24> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<24> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<24> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<24> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<24> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<24> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<24> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<24> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<24> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<24> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<24> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<24> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<24> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<24> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<24> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<24> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<24> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<24> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<24> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<24> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<24> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<24> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<24> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<24> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<24> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22;
+ mpl::int_<23>
+ idx23;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx23
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<25> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<25> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<25> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<25> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<25> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<25> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<25> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<25> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<25> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<25> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<25> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<25> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<25> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<25> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<25> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<25> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<25> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<25> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<25> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<25> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<25> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<25> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<25> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<25> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<25> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<25> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<25> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<25> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<25> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<25> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<25> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<25> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<25> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<25> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<25> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<25> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<25> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<25> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<25> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<25> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<25> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<25> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<25> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<25> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<25> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<25> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<25> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<25> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<25> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<25> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<25> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23;
+ mpl::int_<24>
+ idx24;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx24
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<26> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<26> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<26> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<26> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<26> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<26> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<26> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<26> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<26> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<26> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<26> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<26> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<26> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<26> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<26> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<26> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<26> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<26> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<26> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<26> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<26> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<26> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<26> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<26> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<26> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<26> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<26> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<26> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<26> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<26> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<26> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<26> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<26> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<26> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<26> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<26> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<26> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<26> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<26> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<26> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<26> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<26> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<26> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<26> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<26> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<26> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<26> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<26> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<26> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<26> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<26> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<26> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<26> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24;
+ mpl::int_<25>
+ idx25;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx25
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<27> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<27> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<27> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<27> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<27> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<27> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<27> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<27> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<27> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<27> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<27> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<27> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<27> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<27> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<27> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<27> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<27> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<27> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<27> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<27> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<27> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<27> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<27> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<27> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<27> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<27> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<27> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<27> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<27> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<27> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<27> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<27> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<27> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<27> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<27> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<27> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<27> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<27> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<27> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<27> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<27> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<27> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<27> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<27> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<27> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<27> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<27> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<27> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<27> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<27> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<27> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<27> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<27> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<27> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<27> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25;
+ mpl::int_<26>
+ idx26;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx26
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<28> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<28> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<28> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<28> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<28> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<28> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<28> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<28> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<28> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<28> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<28> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<28> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<28> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<28> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<28> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<28> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<28> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<28> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<28> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<28> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<28> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<28> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<28> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<28> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<28> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<28> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<28> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<28> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<28> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<28> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<28> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<28> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<28> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<28> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<28> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<28> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<28> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<28> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<28> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<28> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<28> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<28> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<28> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<28> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<28> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<28> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<28> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<28> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<28> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<28> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<28> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<28> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<28> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<28> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<28> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<28> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<28> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26;
+ mpl::int_<27>
+ idx27;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx27
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<29> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<29> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<29> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<29> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<29> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<29> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<29> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<29> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<29> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<29> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<29> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<29> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<29> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<29> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<29> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<29> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<29> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<29> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<29> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<29> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<29> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<29> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<29> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<29> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<29> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<29> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<29> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<29> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<29> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<29> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<29> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<29> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<29> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<29> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<29> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<29> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<29> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<29> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<29> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<29> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<29> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<29> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<29> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<29> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<29> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<29> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<29> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<29> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<29> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<29> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<29> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<29> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<29> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<29> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<29> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<29> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<29> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<29> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<29> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27;
+ mpl::int_<28>
+ idx28;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx28
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<30> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<30> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<30> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<30> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<30> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<30> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<30> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<30> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<30> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<30> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<30> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<30> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<30> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<30> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<30> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<30> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<30> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<30> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<30> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<30> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<30> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<30> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<30> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<30> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<30> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<30> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<30> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<30> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<30> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<30> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<30> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<30> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<30> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<30> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<30> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<30> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<30> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<30> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<30> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<30> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<30> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<30> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<30> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<30> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<30> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<30> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<30> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<30> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<30> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<30> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<30> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<30> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<30> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<30> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<30> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<30> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<30> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<30> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<30> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<30> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<30> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28;
+ mpl::int_<29>
+ idx29;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx29
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2140 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::false_
+ ) const
+ {
+
+ switch(eval(cond, env))
+ {
+
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<1> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<2> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ mpl::int_<1>
+ idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx1
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<3> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ mpl::int_<2>
+ idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx2
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<4> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ mpl::int_<3>
+ idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx3
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<5> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ mpl::int_<4>
+ idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx4
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<6> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ mpl::int_<5>
+ idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx5
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<7> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ mpl::int_<6>
+ idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx6
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<8> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ mpl::int_<7>
+ idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx7
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< detail::sw
itch_grammar( Cases , mpl::int_<8> , mpl::int_<9> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ mpl::int_<8>
+ idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx8
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<10> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ mpl::int_<9>
+ idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx9
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<11> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ mpl::int_<10>
+ idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx10
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<12> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ mpl::int_<11>
+ idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx11
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<13> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ mpl::int_<12>
+ idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx12
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<14> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ mpl::int_<13>
+ idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx13
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<15> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ mpl::int_<14>
+ idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx14
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<16> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ mpl::int_<15>
+ idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx15
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<17> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ mpl::int_<16>
+ idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx16
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<18> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ mpl::int_<17>
+ idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx17
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<19> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ mpl::int_<18>
+ idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx18
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<20> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ mpl::int_<19>
+ idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx19
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<21> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<21> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<21> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<21> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<21> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<21> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<21> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<21> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<21> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<21> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<21> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<21> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<21> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<21> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<21> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<21> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<21> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<21> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<21> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<21> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<21> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<21> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<21> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<21> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<21> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<21> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<21> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<21> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<21> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<21> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<21> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<21> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<21> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<21> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<21> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<21> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<21> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<21> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<21> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<21> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<21> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<21> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<21> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19;
+ mpl::int_<20>
+ idx20;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx20
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<22> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<22> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<22> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<22> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<22> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<22> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<22> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<22> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<22> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<22> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<22> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<22> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<22> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<22> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<22> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<22> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<22> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<22> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<22> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<22> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<22> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<22> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<22> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<22> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<22> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<22> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<22> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<22> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<22> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<22> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<22> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<22> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<22> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<22> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<22> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<22> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<22> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<22> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<22> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<22> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<22> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<22> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<22> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<22> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<22> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20;
+ mpl::int_<21>
+ idx21;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx21
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<23> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<23> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<23> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<23> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<23> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<23> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<23> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<23> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<23> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<23> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<23> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<23> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<23> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<23> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<23> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<23> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<23> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<23> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<23> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<23> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<23> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<23> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<23> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<23> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<23> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<23> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<23> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<23> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<23> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<23> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<23> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<23> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<23> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<23> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<23> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<23> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<23> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<23> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<23> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<23> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<23> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<23> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<23> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<23> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<23> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<23> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<23> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21;
+ mpl::int_<22>
+ idx22;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx22
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<24> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<24> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<24> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<24> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<24> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<24> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<24> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<24> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<24> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<24> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<24> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<24> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<24> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<24> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<24> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<24> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<24> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<24> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<24> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<24> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<24> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<24> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<24> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<24> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<24> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<24> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<24> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<24> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<24> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<24> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<24> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<24> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<24> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<24> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<24> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<24> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<24> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<24> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<24> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<24> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<24> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<24> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<24> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<24> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<24> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<24> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<24> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<24> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<24> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22;
+ mpl::int_<23>
+ idx23;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx23
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<25> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<25> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<25> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<25> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<25> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<25> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<25> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<25> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<25> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<25> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<25> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<25> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<25> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<25> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<25> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<25> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<25> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<25> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<25> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<25> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<25> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<25> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<25> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<25> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<25> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<25> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<25> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<25> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<25> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<25> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<25> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<25> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<25> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<25> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<25> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<25> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<25> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<25> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<25> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<25> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<25> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<25> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<25> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<25> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<25> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<25> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<25> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<25> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<25> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<25> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<25> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23;
+ mpl::int_<24>
+ idx24;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx24
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<26> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<26> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<26> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<26> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<26> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<26> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<26> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<26> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<26> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<26> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<26> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<26> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<26> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<26> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<26> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<26> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<26> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<26> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<26> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<26> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<26> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<26> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<26> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<26> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<26> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<26> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<26> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<26> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<26> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<26> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<26> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<26> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<26> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<26> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<26> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<26> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<26> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<26> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<26> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<26> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<26> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<26> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<26> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<26> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<26> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<26> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<26> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<26> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<26> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<26> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<26> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<26> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<26> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24;
+ mpl::int_<25>
+ idx25;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx25
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<27> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<27> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<27> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<27> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<27> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<27> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<27> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<27> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<27> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<27> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<27> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<27> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<27> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<27> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<27> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<27> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<27> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<27> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<27> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<27> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<27> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<27> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<27> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<27> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<27> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<27> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<27> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<27> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<27> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<27> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<27> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<27> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<27> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<27> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<27> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<27> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<27> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<27> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<27> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<27> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<27> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<27> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<27> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<27> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<27> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<27> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<27> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<27> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<27> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<27> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<27> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<27> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<27> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<27> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<27> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25;
+ mpl::int_<26>
+ idx26;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx26
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<28> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<28> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<28> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<28> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<28> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<28> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<28> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<28> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<28> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<28> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<28> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<28> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<28> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<28> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<28> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<28> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<28> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<28> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<28> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<28> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<28> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<28> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<28> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<28> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<28> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<28> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<28> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<28> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<28> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<28> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<28> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<28> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<28> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<28> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<28> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<28> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<28> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<28> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<28> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<28> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<28> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<28> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<28> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<28> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<28> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<28> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<28> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<28> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<28> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<28> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<28> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<28> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<28> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<28> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<28> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<28> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<28> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26;
+ mpl::int_<27>
+ idx27;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx27
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<29> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<29> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<29> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<29> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<29> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<29> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<29> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<29> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<29> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<29> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<29> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<29> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<29> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<29> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<29> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<29> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<29> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<29> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<29> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<29> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<29> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<29> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<29> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<29> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<29> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<29> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<29> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<29> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<29> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<29> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<29> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<29> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<29> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<29> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<29> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<29> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<29> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<29> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<29> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<29> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<29> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<29> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<29> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<29> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<29> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<29> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<29> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<29> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<29> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<29> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<29> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<29> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<29> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<29> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<29> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<29> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<29> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<29> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<29> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27;
+ mpl::int_<28>
+ idx28;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx28
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<30> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<30> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<30> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<30> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<30> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<30> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<30> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<30> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<30> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<30> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<30> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<30> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<30> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<30> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<30> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<30> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<30> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<30> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<30> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<30> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<30> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<30> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<30> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<30> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<30> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<30> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<30> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<30> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<30> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<30> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<30> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<30> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<30> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<30> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<30> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<30> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<30> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<30> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<30> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<30> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<30> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<30> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<30> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<30> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<30> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<30> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<30> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<30> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<30> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<30> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<30> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<30> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<30> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<30> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<30> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<30> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<30> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<30> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<30> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<30> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<30> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28;
+ mpl::int_<29>
+ idx29;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx29
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<31> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<31> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<31> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<31> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<31> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<31> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<31> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<31> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<31> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<31> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<31> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<31> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<31> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<31> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<31> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<31> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<31> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<31> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<31> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<31> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<31> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<31> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<31> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<31> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<31> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<31> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<31> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<31> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<31> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<31> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<31> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<31> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<31> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<31> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<31> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<31> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<31> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<31> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<31> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<31> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<31> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<31> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<31> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<31> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<31> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<31> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<31> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<31> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<31> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<31> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<31> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<31> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<31> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<31> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<31> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<31> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<31> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<31> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<31> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<31> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<31> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<31> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<31> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29;
+ mpl::int_<30>
+ idx30;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx30
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<32> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<32> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<32> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<32> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<32> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<32> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<32> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<32> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<32> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<32> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<32> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<32> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<32> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<32> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<32> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<32> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<32> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<32> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<32> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<32> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<32> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<32> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<32> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<32> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<32> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<32> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<32> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<32> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<32> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<32> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<32> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<32> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<32> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<32> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<32> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<32> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<32> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<32> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<32> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<32> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<32> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<32> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<32> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<32> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<32> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<32> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<32> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<32> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<32> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<32> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<32> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<32> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<32> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<32> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<32> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<32> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<32> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<32> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<32> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<32> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<32> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<32> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<32> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<32> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<32> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30;
+ mpl::int_<31>
+ idx31;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx31
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<33> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<33> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<33> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<33> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<33> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<33> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<33> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<33> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<33> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<33> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<33> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<33> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<33> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<33> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<33> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<33> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<33> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<33> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<33> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<33> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<33> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<33> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<33> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<33> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<33> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<33> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<33> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<33> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<33> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<33> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<33> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<33> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<33> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<33> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<33> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<33> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<33> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<33> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<33> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<33> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<33> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<33> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<33> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<33> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<33> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<33> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<33> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<33> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<33> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<33> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<33> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<33> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<33> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<33> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<33> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<33> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<33> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<33> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<33> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<33> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<33> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<33> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<33> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<33> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<33> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<33> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<33> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31;
+ mpl::int_<32>
+ idx32;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx32
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<34> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<34> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<34> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<34> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<34> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<34> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<34> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<34> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<34> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<34> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<34> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<34> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<34> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<34> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<34> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<34> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<34> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<34> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<34> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<34> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<34> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<34> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<34> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<34> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<34> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<34> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<34> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<34> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<34> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<34> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<34> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<34> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<34> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<34> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<34> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<34> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<34> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<34> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<34> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<34> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<34> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<34> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<34> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<34> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<34> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<34> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<34> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<34> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<34> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<34> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<34> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<34> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<34> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<34> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<34> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<34> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<34> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<34> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<34> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<34> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<34> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<34> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<34> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<34> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<34> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<34> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<34> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<34> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<34> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32;
+ mpl::int_<33>
+ idx33;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx33
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<35> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<35> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<35> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<35> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<35> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<35> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<35> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<35> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<35> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<35> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<35> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<35> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<35> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<35> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<35> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<35> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<35> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<35> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<35> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<35> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<35> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<35> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<35> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<35> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<35> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<35> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<35> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<35> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<35> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<35> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<35> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<35> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<35> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<35> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<35> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<35> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<35> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<35> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<35> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<35> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<35> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<35> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<35> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<35> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<35> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<35> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<35> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<35> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<35> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<35> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<35> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<35> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<35> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<35> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<35> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<35> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<35> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<35> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<35> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<35> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<35> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<35> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<35> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<35> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<35> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<35> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<35> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<35> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<35> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<35> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<35> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33;
+ mpl::int_<34>
+ idx34;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx34
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<36> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<36> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<36> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<36> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<36> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<36> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<36> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<36> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<36> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<36> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<36> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<36> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<36> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<36> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<36> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<36> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<36> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<36> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<36> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<36> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<36> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<36> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<36> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<36> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<36> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<36> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<36> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<36> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<36> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<36> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<36> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<36> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<36> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<36> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<36> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<36> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<36> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<36> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<36> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<36> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<36> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<36> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<36> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<36> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<36> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<36> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<36> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<36> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<36> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<36> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<36> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<36> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<36> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<36> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<36> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<36> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<36> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<36> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<36> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<36> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<36> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<36> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<36> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<36> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<36> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<36> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<36> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<36> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<36> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<36> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<36> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<36> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<36> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34;
+ mpl::int_<35>
+ idx35;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx35
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<37> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<37> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<37> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<37> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<37> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<37> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<37> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<37> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<37> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<37> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<37> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<37> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<37> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<37> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<37> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<37> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<37> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<37> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<37> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<37> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<37> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<37> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<37> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<37> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<37> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<37> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<37> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<37> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<37> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<37> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<37> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<37> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<37> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<37> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<37> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<37> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<37> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<37> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<37> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<37> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<37> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<37> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<37> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<37> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<37> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<37> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<37> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<37> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<37> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<37> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<37> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<37> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<37> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<37> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<37> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<37> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<37> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<37> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<37> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<37> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<37> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<37> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<37> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<37> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<37> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<37> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<37> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<37> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<37> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<37> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<37> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<37> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<37> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<37> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<37> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35;
+ mpl::int_<36>
+ idx36;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx36
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<38> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<38> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<38> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<38> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<38> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<38> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<38> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<38> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<38> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<38> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<38> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<38> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<38> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<38> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<38> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<38> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<38> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<38> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<38> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<38> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<38> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<38> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<38> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<38> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<38> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<38> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<38> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<38> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<38> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<38> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<38> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<38> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<38> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<38> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<38> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<38> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<38> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<38> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<38> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<38> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<38> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<38> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<38> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<38> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<38> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<38> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<38> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<38> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<38> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<38> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<38> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<38> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<38> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<38> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<38> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<38> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<38> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<38> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<38> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<38> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<38> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<38> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<38> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<38> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<38> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<38> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<38> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<38> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<38> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<38> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<38> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<38> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<38> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<38> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<38> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<38> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<38> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36;
+ mpl::int_<37>
+ idx37;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx37
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<39> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<39> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<39> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<39> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<39> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<39> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<39> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<39> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<39> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<39> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<39> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<39> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<39> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<39> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<39> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<39> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<39> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<39> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<39> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<39> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<39> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<39> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<39> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<39> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<39> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<39> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<39> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<39> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<39> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<39> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<39> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<39> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<39> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<39> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<39> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<39> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<39> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<39> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<39> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<39> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<39> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<39> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<39> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<39> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<39> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<39> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<39> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<39> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<39> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<39> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<39> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<39> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<39> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<39> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<39> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<39> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<39> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<39> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<39> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<39> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<39> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<39> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<39> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<39> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<39> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<39> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<39> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<39> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<39> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<39> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<39> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<39> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<39> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<39> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<39> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<39> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<39> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<39> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<39> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37;
+ mpl::int_<38>
+ idx38;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx38
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<40> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<40> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<40> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<40> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<40> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<40> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<40> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<40> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<40> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<40> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<40> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<40> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<40> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<40> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<40> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<40> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<40> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<40> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<40> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<40> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<40> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<40> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<40> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<40> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<40> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<40> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<40> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<40> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<40> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<40> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<40> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<40> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<40> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<40> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<40> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<40> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<40> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<40> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<40> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<40> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<40> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<40> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<40> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<40> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<40> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<40> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<40> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<40> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<40> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<40> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<40> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<40> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<40> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<40> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<40> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<40> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<40> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<40> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<40> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<40> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<40> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<40> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<40> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<40> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<40> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<40> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<40> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<40> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<40> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<40> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<40> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<40> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<40> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<40> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<40> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<40> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<40> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<40> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<40> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<40> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<40> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38;
+ mpl::int_<39>
+ idx39;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx39
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/switch_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2660 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::false_
+ ) const
+ {
+
+ switch(eval(cond, env))
+ {
+
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<0> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<1> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<1> size
+ , mpl::true_
+ ) const
+ {
+
+ mpl::int_<0>
+ idx0;
+ switch(eval(cond, env))
+ {
+
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx0
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<2> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<2> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<2> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0;
+ mpl::int_<1>
+ idx1;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx1
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<3> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<3> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<3> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<3> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1;
+ mpl::int_<2>
+ idx2;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx2
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<4> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<4> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<4> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<4> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<4> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2;
+ mpl::int_<3>
+ idx3;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx3
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<5> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<5> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<5> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<5> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<5> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<5> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3;
+ mpl::int_<4>
+ idx4;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx4
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<6> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<6> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<6> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<6> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<6> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<6> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<6> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4;
+ mpl::int_<5>
+ idx5;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx5
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<7> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<7> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<7> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<7> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<7> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<7> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<7> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<7> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5;
+ mpl::int_<6>
+ idx6;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx6
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<8> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<8> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<8> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<8> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<8> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<8> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<8> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<8> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<8> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6;
+ mpl::int_<7>
+ idx7;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx7
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< detail::sw
itch_grammar( Cases , mpl::int_<8> , mpl::int_<9> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<9> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<9> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<9> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<9> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<9> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef typena
me boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<9> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<9> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<9> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<9> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7;
+ mpl::int_<8>
+ idx8;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx8
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<10> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<10> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<10> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<10> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<10> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<10> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<10> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<10> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<10> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<10> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<10> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8;
+ mpl::int_<9>
+ idx9;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx9
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<11> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<11> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<11> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<11> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<11> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<11> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<11> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<11> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<11> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<11> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<11> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<11> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9;
+ mpl::int_<10>
+ idx10;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx10
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<12> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<12> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<12> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<12> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<12> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<12> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<12> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<12> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<12> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<12> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<12> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<12> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<12> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10;
+ mpl::int_<11>
+ idx11;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx11
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<13> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<13> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<13> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<13> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<13> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<13> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<13> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<13> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<13> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<13> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<13> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<13> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<13> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<13> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11;
+ mpl::int_<12>
+ idx12;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx12
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<14> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<14> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<14> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<14> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<14> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<14> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<14> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<14> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<14> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<14> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<14> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<14> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<14> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<14> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<14> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12;
+ mpl::int_<13>
+ idx13;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx13
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<15> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<15> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<15> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<15> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<15> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<15> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<15> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<15> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<15> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<15> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<15> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<15> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<15> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<15> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<15> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<15> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13;
+ mpl::int_<14>
+ idx14;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx14
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<16> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<16> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<16> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<16> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<16> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<16> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<16> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<16> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<16> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<16> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<16> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<16> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<16> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<16> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<16> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<16> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<16> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14;
+ mpl::int_<15>
+ idx15;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx15
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<17> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<17> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<17> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<17> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<17> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<17> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<17> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<17> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<17> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<17> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<17> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<17> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<17> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<17> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<17> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<17> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<17> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<17> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15;
+ mpl::int_<16>
+ idx16;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx16
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<18> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<18> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<18> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<18> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<18> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<18> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<18> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<18> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<18> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<18> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<18> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<18> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<18> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<18> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<18> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<18> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<18> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<18> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<18> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16;
+ mpl::int_<17>
+ idx17;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx17
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<19> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<19> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<19> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<19> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<19> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<19> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<19> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<19> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<19> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<19> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<19> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<19> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<19> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<19> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<19> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<19> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<19> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<19> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<19> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<19> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17;
+ mpl::int_<18>
+ idx18;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx18
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<20> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<20> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<20> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<20> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<20> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<20> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<20> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<20> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<20> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<20> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<20> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<20> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<20> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<20> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<20> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<20> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<20> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<20> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<20> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<20> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<20> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18;
+ mpl::int_<19>
+ idx19;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx19
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<21> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<21> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<21> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<21> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<21> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<21> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<21> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<21> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<21> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<21> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<21> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<21> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<21> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<21> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<21> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<21> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<21> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<21> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<21> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<21> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<21> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<21> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<21> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<21> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<21> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<21> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<21> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<21> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<21> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<21> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<21> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<21> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<21> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<21> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<21> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<21> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<21> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<21> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<21> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<21> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<21> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<21> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<21> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19;
+ mpl::int_<20>
+ idx20;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx20
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<22> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<22> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<22> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<22> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<22> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<22> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<22> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<22> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<22> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<22> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<22> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<22> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<22> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<22> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<22> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<22> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<22> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<22> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<22> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<22> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<22> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<22> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<22> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<22> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<22> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<22> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<22> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<22> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<22> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<22> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<22> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<22> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<22> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<22> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<22> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<22> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<22> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<22> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<22> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<22> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<22> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<22> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<22> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<22> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<22> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20;
+ mpl::int_<21>
+ idx21;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx21
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<23> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<23> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<23> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<23> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<23> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<23> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<23> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<23> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<23> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<23> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<23> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<23> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<23> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<23> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<23> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<23> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<23> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<23> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<23> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<23> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<23> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<23> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<23> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<23> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<23> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<23> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<23> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<23> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<23> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<23> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<23> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<23> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<23> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<23> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<23> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<23> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<23> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<23> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<23> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<23> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<23> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<23> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<23> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<23> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<23> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<23> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<23> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21;
+ mpl::int_<22>
+ idx22;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx22
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<24> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<24> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<24> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<24> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<24> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<24> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<24> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<24> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<24> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<24> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<24> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<24> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<24> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<24> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<24> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<24> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<24> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<24> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<24> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<24> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<24> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<24> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<24> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<24> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<24> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<24> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<24> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<24> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<24> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<24> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<24> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<24> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<24> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<24> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<24> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<24> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<24> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<24> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<24> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<24> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<24> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<24> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<24> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<24> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<24> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<24> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<24> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<24> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<24> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22;
+ mpl::int_<23>
+ idx23;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx23
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<25> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<25> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<25> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<25> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<25> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<25> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<25> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<25> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<25> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<25> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<25> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<25> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<25> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<25> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<25> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<25> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<25> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<25> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<25> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<25> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<25> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<25> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<25> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<25> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<25> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<25> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<25> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<25> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<25> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<25> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<25> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<25> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<25> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<25> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<25> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<25> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<25> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<25> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<25> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<25> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<25> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<25> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<25> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<25> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<25> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<25> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<25> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<25> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<25> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<25> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<25> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23;
+ mpl::int_<24>
+ idx24;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx24
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<26> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<26> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<26> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<26> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<26> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<26> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<26> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<26> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<26> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<26> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<26> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<26> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<26> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<26> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<26> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<26> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<26> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<26> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<26> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<26> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<26> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<26> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<26> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<26> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<26> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<26> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<26> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<26> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<26> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<26> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<26> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<26> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<26> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<26> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<26> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<26> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<26> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<26> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<26> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<26> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<26> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<26> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<26> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<26> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<26> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<26> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<26> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<26> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<26> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<26> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<26> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<26> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<26> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24;
+ mpl::int_<25>
+ idx25;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx25
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<27> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<27> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<27> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<27> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<27> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<27> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<27> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<27> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<27> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<27> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<27> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<27> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<27> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<27> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<27> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<27> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<27> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<27> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<27> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<27> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<27> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<27> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<27> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<27> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<27> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<27> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<27> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<27> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<27> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<27> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<27> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<27> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<27> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<27> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<27> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<27> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<27> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<27> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<27> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<27> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<27> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<27> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<27> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<27> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<27> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<27> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<27> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<27> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<27> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<27> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<27> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<27> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<27> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<27> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<27> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25;
+ mpl::int_<26>
+ idx26;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx26
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<28> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<28> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<28> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<28> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<28> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<28> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<28> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<28> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<28> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<28> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<28> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<28> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<28> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<28> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<28> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<28> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<28> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<28> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<28> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<28> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<28> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<28> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<28> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<28> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<28> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<28> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<28> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<28> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<28> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<28> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<28> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<28> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<28> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<28> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<28> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<28> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<28> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<28> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<28> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<28> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<28> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<28> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<28> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<28> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<28> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<28> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<28> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<28> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<28> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<28> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<28> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<28> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<28> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<28> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<28> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<28> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<28> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26;
+ mpl::int_<27>
+ idx27;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx27
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<29> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<29> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<29> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<29> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<29> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<29> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<29> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<29> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<29> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<29> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<29> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<29> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<29> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<29> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<29> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<29> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<29> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<29> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<29> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<29> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<29> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<29> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<29> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<29> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<29> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<29> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<29> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<29> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<29> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<29> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<29> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<29> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<29> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<29> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<29> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<29> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<29> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<29> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<29> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<29> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<29> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<29> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<29> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<29> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<29> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<29> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<29> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<29> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<29> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<29> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<29> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<29> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<29> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<29> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<29> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<29> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<29> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<29> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<29> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27;
+ mpl::int_<28>
+ idx28;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx28
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<30> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<30> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<30> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<30> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<30> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<30> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<30> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<30> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<30> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<30> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<30> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<30> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<30> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<30> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<30> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<30> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<30> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<30> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<30> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<30> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<30> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<30> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<30> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<30> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<30> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<30> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<30> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<30> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<30> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<30> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<30> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<30> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<30> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<30> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<30> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<30> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<30> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<30> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<30> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<30> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<30> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<30> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<30> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<30> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<30> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<30> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<30> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<30> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<30> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<30> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<30> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<30> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<30> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<30> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<30> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<30> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<30> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<30> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<30> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<30> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<30> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28;
+ mpl::int_<29>
+ idx29;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx29
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<31> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<31> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<31> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<31> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<31> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<31> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<31> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<31> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<31> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<31> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<31> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<31> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<31> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<31> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<31> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<31> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<31> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<31> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<31> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<31> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<31> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<31> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<31> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<31> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<31> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<31> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<31> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<31> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<31> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<31> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<31> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<31> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<31> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<31> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<31> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<31> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<31> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<31> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<31> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<31> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<31> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<31> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<31> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<31> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<31> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<31> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<31> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<31> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<31> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<31> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<31> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<31> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<31> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<31> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<31> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<31> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<31> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<31> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<31> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<31> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<31> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<31> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<31> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29;
+ mpl::int_<30>
+ idx30;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx30
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<32> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<32> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<32> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<32> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<32> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<32> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<32> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<32> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<32> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<32> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<32> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<32> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<32> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<32> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<32> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<32> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<32> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<32> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<32> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<32> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<32> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<32> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<32> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<32> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<32> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<32> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<32> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<32> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<32> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<32> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<32> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<32> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<32> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<32> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<32> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<32> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<32> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<32> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<32> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<32> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<32> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<32> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<32> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<32> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<32> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<32> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<32> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<32> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<32> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<32> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<32> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<32> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<32> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<32> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<32> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<32> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<32> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<32> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<32> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<32> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<32> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<32> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<32> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<32> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<32> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30;
+ mpl::int_<31>
+ idx31;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx31
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<33> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<33> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<33> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<33> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<33> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<33> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<33> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<33> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<33> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<33> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<33> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<33> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<33> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<33> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<33> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<33> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<33> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<33> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<33> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<33> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<33> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<33> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<33> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<33> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<33> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<33> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<33> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<33> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<33> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<33> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<33> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<33> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<33> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<33> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<33> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<33> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<33> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<33> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<33> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<33> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<33> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<33> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<33> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<33> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<33> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<33> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<33> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<33> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<33> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<33> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<33> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<33> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<33> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<33> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<33> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<33> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<33> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<33> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<33> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<33> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<33> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<33> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<33> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<33> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<33> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<33> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<33> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31;
+ mpl::int_<32>
+ idx32;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx32
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<34> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<34> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<34> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<34> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<34> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<34> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<34> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<34> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<34> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<34> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<34> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<34> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<34> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<34> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<34> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<34> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<34> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<34> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<34> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<34> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<34> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<34> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<34> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<34> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<34> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<34> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<34> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<34> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<34> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<34> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<34> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<34> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<34> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<34> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<34> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<34> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<34> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<34> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<34> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<34> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<34> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<34> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<34> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<34> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<34> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<34> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<34> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<34> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<34> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<34> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<34> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<34> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<34> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<34> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<34> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<34> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<34> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<34> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<34> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<34> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<34> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<34> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<34> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<34> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<34> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<34> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<34> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<34> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<34> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32;
+ mpl::int_<33>
+ idx33;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx33
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<35> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<35> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<35> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<35> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<35> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<35> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<35> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<35> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<35> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<35> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<35> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<35> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<35> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<35> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<35> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<35> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<35> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<35> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<35> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<35> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<35> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<35> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<35> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<35> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<35> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<35> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<35> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<35> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<35> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<35> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<35> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<35> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<35> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<35> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<35> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<35> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<35> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<35> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<35> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<35> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<35> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<35> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<35> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<35> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<35> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<35> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<35> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<35> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<35> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<35> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<35> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<35> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<35> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<35> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<35> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<35> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<35> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<35> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<35> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<35> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<35> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<35> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<35> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<35> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<35> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<35> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<35> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<35> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<35> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<35> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<35> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33;
+ mpl::int_<34>
+ idx34;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx34
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<36> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<36> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<36> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<36> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<36> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<36> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<36> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<36> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<36> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<36> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<36> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<36> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<36> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<36> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<36> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<36> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<36> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<36> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<36> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<36> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<36> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<36> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<36> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<36> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<36> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<36> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<36> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<36> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<36> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<36> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<36> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<36> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<36> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<36> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<36> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<36> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<36> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<36> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<36> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<36> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<36> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<36> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<36> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<36> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<36> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<36> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<36> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<36> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<36> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<36> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<36> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<36> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<36> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<36> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<36> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<36> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<36> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<36> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<36> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<36> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<36> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<36> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<36> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<36> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<36> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<36> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<36> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<36> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<36> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<36> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<36> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<36> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<36> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34;
+ mpl::int_<35>
+ idx35;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx35
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<37> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<37> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<37> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<37> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<37> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<37> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<37> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<37> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<37> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<37> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<37> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<37> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<37> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<37> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<37> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<37> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<37> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<37> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<37> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<37> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<37> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<37> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<37> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<37> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<37> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<37> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<37> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<37> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<37> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<37> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<37> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<37> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<37> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<37> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<37> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<37> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<37> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<37> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<37> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<37> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<37> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<37> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<37> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<37> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<37> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<37> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<37> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<37> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<37> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<37> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<37> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<37> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<37> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<37> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<37> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<37> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<37> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<37> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<37> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<37> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<37> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<37> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<37> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<37> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<37> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<37> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<37> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<37> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<37> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<37> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<37> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<37> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<37> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<37> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<37> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35;
+ mpl::int_<36>
+ idx36;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx36
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<38> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<38> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<38> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<38> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<38> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<38> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<38> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<38> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<38> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<38> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<38> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<38> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<38> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<38> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<38> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<38> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<38> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<38> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<38> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<38> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<38> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<38> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<38> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<38> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<38> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<38> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<38> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<38> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<38> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<38> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<38> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<38> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<38> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<38> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<38> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<38> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<38> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<38> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<38> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<38> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<38> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<38> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<38> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<38> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<38> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<38> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<38> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<38> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<38> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<38> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<38> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<38> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<38> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<38> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<38> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<38> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<38> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<38> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<38> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<38> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<38> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<38> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<38> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<38> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<38> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<38> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<38> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<38> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<38> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<38> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<38> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<38> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<38> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<38> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<38> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<38> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<38> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36;
+ mpl::int_<37>
+ idx37;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx37
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<39> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<39> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<39> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<39> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<39> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<39> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<39> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<39> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<39> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<39> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<39> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<39> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<39> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<39> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<39> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<39> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<39> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<39> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<39> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<39> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<39> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<39> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<39> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<39> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<39> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<39> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<39> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<39> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<39> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<39> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<39> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<39> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<39> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<39> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<39> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<39> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<39> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<39> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<39> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<39> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<39> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<39> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<39> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<39> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<39> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<39> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<39> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<39> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<39> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<39> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<39> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<39> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<39> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<39> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<39> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<39> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<39> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<39> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<39> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<39> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<39> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<39> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<39> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<39> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<39> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<39> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<39> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<39> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<39> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<39> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<39> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<39> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<39> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<39> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<39> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<39> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<39> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<39> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<39> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37;
+ mpl::int_<38>
+ idx38;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx38
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<40> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<40> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<40> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<40> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<40> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<40> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<40> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<40> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<40> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<40> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<40> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<40> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<40> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<40> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<40> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<40> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<40> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<40> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<40> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<40> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<40> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<40> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<40> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<40> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<40> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<40> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<40> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<40> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<40> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<40> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<40> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<40> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<40> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<40> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<40> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<40> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<40> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<40> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<40> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<40> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<40> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<40> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<40> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<40> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<40> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<40> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<40> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<40> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<40> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<40> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<40> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<40> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<40> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<40> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<40> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<40> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<40> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<40> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<40> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<40> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<40> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<40> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<40> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<40> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<40> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<40> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<40> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<40> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<40> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<40> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<40> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<40> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<40> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<40> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<40> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<40> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<40> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<40> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<40> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<40> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<40> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38;
+ mpl::int_<39>
+ idx39;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx39
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<41> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<41> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<41> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<41> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<41> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<41> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<41> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<41> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<41> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<41> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<41> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<41> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<41> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<41> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<41> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<41> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<41> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<41> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<41> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<41> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<41> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<41> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<41> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<41> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<41> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<41> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<41> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<41> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<41> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<41> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<41> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<41> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<41> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<41> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<41> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<41> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<41> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<41> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<41> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<41> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<41> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<41> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<41> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<41> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<41> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<41> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<41> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<41> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<41> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<41> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<41> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<41> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<41> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<41> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<41> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<41> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<41> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<41> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<41> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<41> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<41> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<41> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<41> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<41> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<41> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<41> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<41> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<41> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<41> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<41> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<41> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<41> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<41> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<41> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<41> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<41> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<41> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<41> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<41> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<41> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<41> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<41> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<41> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39;
+ mpl::int_<40>
+ idx40;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx40
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<42> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<42> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<42> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<42> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<42> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<42> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<42> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<42> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<42> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<42> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<42> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<42> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<42> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<42> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<42> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<42> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<42> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<42> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<42> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<42> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<42> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<42> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<42> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<42> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<42> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<42> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<42> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<42> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<42> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<42> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<42> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<42> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<42> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<42> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<42> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<42> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<42> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<42> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<42> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<42> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<42> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<42> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<42> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<42> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<42> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<42> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<42> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<42> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<42> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<42> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<42> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<42> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<42> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<42> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<42> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<42> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<42> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<42> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<42> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<42> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<42> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<42> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<42> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<42> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<42> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<42> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<42> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<42> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<42> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<42> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<42> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<42> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<42> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<42> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<42> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<42> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<42> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<42> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<42> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<42> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<42> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<42> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<42> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<42> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<42> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40;
+ mpl::int_<41>
+ idx41;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx41
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<43> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<43> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<43> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<43> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<43> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<43> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<43> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<43> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<43> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<43> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<43> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<43> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<43> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<43> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<43> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<43> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<43> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<43> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<43> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<43> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<43> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<43> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<43> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<43> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<43> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<43> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<43> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<43> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<43> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<43> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<43> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<43> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<43> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<43> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<43> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<43> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<43> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<43> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<43> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<43> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<43> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<43> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<43> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<43> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<43> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<43> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<43> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<43> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<43> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<43> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<43> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<43> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<43> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<43> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<43> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<43> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<43> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<43> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<43> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<43> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<43> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<43> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<43> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<43> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<43> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<43> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<43> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<43> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<43> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<43> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<43> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<43> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<43> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<43> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<43> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<43> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<43> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<43> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<43> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<43> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<43> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<43> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<43> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<43> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<43> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<43> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<43> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41;
+ mpl::int_<42>
+ idx42;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx42
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<44> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<44> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<44> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<44> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<44> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<44> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<44> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<44> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<44> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<44> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<44> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<44> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<44> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<44> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<44> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<44> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<44> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<44> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<44> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<44> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<44> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<44> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<44> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<44> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<44> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<44> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<44> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<44> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<44> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<44> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<44> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<44> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<44> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<44> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<44> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<44> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<44> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<44> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<44> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<44> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<44> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<44> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<44> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<44> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<44> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<44> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<44> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<44> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<44> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<44> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<44> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<44> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<44> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<44> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<44> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<44> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<44> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<44> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<44> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<44> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<44> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<44> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<44> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<44> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<44> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<44> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<44> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<44> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<44> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<44> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<44> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<44> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<44> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<44> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<44> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<44> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<44> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<44> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<44> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<44> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<44> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<44> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<44> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<44> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<44> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<44> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<44> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<44> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<44> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42;
+ mpl::int_<43>
+ idx43;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx43
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<45> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<45> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<45> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<45> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<45> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<45> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<45> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<45> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<45> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<45> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<45> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<45> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<45> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<45> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<45> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<45> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<45> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<45> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<45> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<45> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<45> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<45> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<45> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<45> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<45> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<45> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<45> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<45> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<45> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<45> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<45> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<45> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<45> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<45> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<45> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<45> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<45> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<45> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<45> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<45> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<45> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<45> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<45> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<45> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<45> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<45> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<45> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<45> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<45> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<45> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<45> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<45> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<45> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<45> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<45> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<45> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<45> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<45> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<45> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<45> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<45> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<45> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<45> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<45> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<45> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<45> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<45> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<45> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<45> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<45> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<45> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<45> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<45> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<45> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<45> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<45> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<45> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<45> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<45> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<45> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<45> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<45> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<45> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<45> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<45> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<45> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<45> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<45> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<45> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<45> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<45> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43;
+ mpl::int_<44>
+ idx44;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx44
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<46> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<46> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<46> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<46> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<46> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<46> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<46> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<46> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<46> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<46> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<46> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<46> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<46> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<46> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<46> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<46> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<46> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<46> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<46> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<46> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<46> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<46> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<46> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<46> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<46> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<46> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<46> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<46> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<46> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<46> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<46> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<46> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<46> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<46> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<46> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<46> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<46> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<46> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<46> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<46> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<46> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<46> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<46> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<46> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<46> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<46> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<46> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<46> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<46> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<46> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<46> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<46> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<46> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<46> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<46> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<46> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<46> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<46> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<46> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<46> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<46> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<46> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<46> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<46> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<46> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<46> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<46> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<46> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<46> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<46> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<46> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<46> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<46> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<46> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<46> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<46> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<46> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<46> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<46> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<46> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<46> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<46> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<46> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<46> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<46> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<46> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<46> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<46> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<46> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<46> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<46> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<46> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<46> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44;
+ mpl::int_<45>
+ idx45;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx45
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<47> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<47> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<47> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<47> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<47> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<47> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<47> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<47> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<47> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<47> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<47> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<47> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<47> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<47> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<47> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<47> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<47> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<47> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<47> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<47> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<47> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<47> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<47> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<47> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<47> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<47> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<47> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<47> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<47> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<47> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<47> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<47> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<47> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<47> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<47> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<47> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<47> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<47> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<47> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<47> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<47> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<47> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<47> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<47> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<47> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<47> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<47> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<46> , mpl::int_<47> ) >::type case46; typedef typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type case_label46; mpl::int_<46> idx46;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break; case case_label46::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx46, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<47> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<47> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<47> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<47> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<47> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<47> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<47> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<47> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<47> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<47> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<47> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<47> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<47> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<47> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<47> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<47> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<47> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<47> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<47> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<47> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<47> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<47> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<47> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<47> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<47> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<47> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<47> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<47> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<47> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<47> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<47> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<47> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<47> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<47> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<47> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<47> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<47> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<47> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<47> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<47> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<47> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<47> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<47> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<47> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<47> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<47> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<47> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45;
+ mpl::int_<46>
+ idx46;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx46
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<48> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<48> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<48> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<48> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<48> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<48> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<48> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<48> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<48> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<48> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<48> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<48> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<48> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<48> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<48> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<48> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<48> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<48> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<48> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<48> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<48> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<48> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<48> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<48> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<48> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<48> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<48> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<48> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<48> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<48> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<48> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<48> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<48> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<48> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<48> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<48> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<48> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<48> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<48> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<48> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<48> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<48> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<48> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<48> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<48> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<48> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<48> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<46> , mpl::int_<48> ) >::type case46; typedef typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type case_label46; mpl::int_<46> idx46; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<47> , mpl::int_<48> ) >::type case47; typedef typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type case_label47; mpl::int_<47> idx47;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break; case case_label46::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx46, size ) ) , env ); break; case case_label47::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx47, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<48> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<48> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<48> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<48> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<48> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<48> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<48> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<48> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<48> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<48> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<48> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<48> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<48> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<48> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<48> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<48> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<48> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<48> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<48> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<48> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<48> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<48> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<48> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<48> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<48> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<48> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<48> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<48> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<48> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<48> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<48> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<48> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<48> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<48> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<48> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<48> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<48> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<48> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<48> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<48> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<48> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<48> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<48> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<48> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<48> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<48> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<48> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<46> , mpl::int_<48> ) >::type case46; typedef typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type case_label46; mpl::int_<46> idx46;
+ mpl::int_<47>
+ idx47;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break; case case_label46::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx46, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx47
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<49> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<49> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<49> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<49> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<49> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<49> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<49> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<49> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<49> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<49> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<49> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<49> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<49> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<49> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<49> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<49> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<49> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<49> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<49> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<49> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<49> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<49> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<49> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<49> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<49> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<49> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<49> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<49> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<49> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<49> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<49> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<49> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<49> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<49> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<49> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<49> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<49> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<49> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<49> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<49> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<49> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<49> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<49> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<49> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<49> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<49> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<49> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<46> , mpl::int_<49> ) >::type case46; typedef typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type case_label46; mpl::int_<46> idx46; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<47> , mpl::int_<49> ) >::type case47; typedef typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type case_label47; mpl::int_<47> idx47; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<48
> , mpl::int_<49> ) >::type case48; typedef typename proto::result_of::value< typename proto::result_of::child_c< case48 , 0 >::type >::type case_label48; mpl::int_<48> idx48;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break; case case_label46::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx46, size ) ) , env ); break; case case_label47::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx47, size ) ) , env ); break; case case_label48::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx48, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<49> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<49> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<49> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<49> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<49> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<49> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<49> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<49> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<49> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<49> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<49> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<49> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<49> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<49> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<49> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<49> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<49> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<49> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<49> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<49> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<49> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<49> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<49> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<49> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<49> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<49> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<49> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<49> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<49> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<49> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<49> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<49> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<49> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<49> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<49> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<49> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<49> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<49> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<49> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<49> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<49> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<49> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<49> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<49> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<49> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<49> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<49> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<46> , mpl::int_<49> ) >::type case46; typedef typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type case_label46; mpl::int_<46> idx46; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<47> , mpl::int_<49> ) >::type case47; typedef typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type case_label47; mpl::int_<47> idx47;
+ mpl::int_<48>
+ idx48;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break; case case_label46::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx46, size ) ) , env ); break; case case_label47::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx47, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx48
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<50> size
+ , mpl::false_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<50> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<50> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<50> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<50> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<50> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<50> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<50> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<50> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<50> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<50> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<50> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<50> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<50> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<50> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<50> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<50> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<50> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<50> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<50> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<50> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<50> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<50> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<50> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<50> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<50> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<50> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<50> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<50> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<50> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<50> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<50> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<50> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<50> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<50> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<50> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<50> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<50> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<50> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<50> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<50> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<50> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<50> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<50> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<50> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<50> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<50> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<46> , mpl::int_<50> ) >::type case46; typedef typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type case_label46; mpl::int_<46> idx46; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<47> , mpl::int_<50> ) >::type case47; typedef typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type case_label47; mpl::int_<47> idx47; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<48
> , mpl::int_<50> ) >::type case48; typedef typename proto::result_of::value< typename proto::result_of::child_c< case48 , 0 >::type >::type case_label48; mpl::int_<48> idx48; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<49> , mpl::int_<50> ) >::type case49; typedef typename proto::result_of::value< typename proto::result_of::child_c< case49 , 0 >::type >::type case_label49; mpl::int_<49> idx49;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break; case case_label46::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx46, size ) ) , env ); break; case case_label47::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx47, size ) ) , env ); break; case case_label48::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx48, size ) ) , env ); break; case case_label49::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx49, size ) ) , env ); break;
+ }
+ }
+ template <typename Env, typename Cond, typename Cases>
+ result_type
+ evaluate(
+ Env & env
+ , Cond const & cond
+ , Cases const & cases
+ , mpl::int_<50> size
+ , mpl::true_
+ ) const
+ {
+ typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<0> , mpl::int_<50> ) >::type case0; typedef typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type case_label0; mpl::int_<0> idx0; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<1> , mpl::int_<50> ) >::type case1; typedef typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type case_label1; mpl::int_<1> idx1; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<2> , mpl::int_<50> ) >::type case2; typedef typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type case_label2; mpl::int_<2> idx2; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<3> , mpl::int_<50> ) >::type case3; typedef typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type case_label3; mpl::int_<3> idx3; typedef ty
pename boost::result_of< detail::switch_grammar( Cases , mpl::int_<4> , mpl::int_<50> ) >::type case4; typedef typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type case_label4; mpl::int_<4> idx4; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<5> , mpl::int_<50> ) >::type case5; typedef typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type case_label5; mpl::int_<5> idx5; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<6> , mpl::int_<50> ) >::type case6; typedef typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type case_label6; mpl::int_<6> idx6; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<7> , mpl::int_<50> ) >::type case7; typedef typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type case_label7; mpl::int_<7> idx7; typedef typename boost::result_of< de
tail::switch_grammar( Cases , mpl::int_<8> , mpl::int_<50> ) >::type case8; typedef typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type case_label8; mpl::int_<8> idx8; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<9> , mpl::int_<50> ) >::type case9; typedef typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type case_label9; mpl::int_<9> idx9; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<10> , mpl::int_<50> ) >::type case10; typedef typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type case_label10; mpl::int_<10> idx10; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<11> , mpl::int_<50> ) >::type case11; typedef typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type case_label11; mpl::int_<11> idx11; typedef typename boost::result_of< detail::switch_gr
ammar( Cases , mpl::int_<12> , mpl::int_<50> ) >::type case12; typedef typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type case_label12; mpl::int_<12> idx12; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<13> , mpl::int_<50> ) >::type case13; typedef typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type case_label13; mpl::int_<13> idx13; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<14> , mpl::int_<50> ) >::type case14; typedef typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type case_label14; mpl::int_<14> idx14; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<15> , mpl::int_<50> ) >::type case15; typedef typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type case_label15; mpl::int_<15> idx15; typedef typename boost::result_of< detail::switch_gramm
ar( Cases , mpl::int_<16> , mpl::int_<50> ) >::type case16; typedef typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type case_label16; mpl::int_<16> idx16; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<17> , mpl::int_<50> ) >::type case17; typedef typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type case_label17; mpl::int_<17> idx17; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<18> , mpl::int_<50> ) >::type case18; typedef typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type case_label18; mpl::int_<18> idx18; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<19> , mpl::int_<50> ) >::type case19; typedef typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type case_label19; mpl::int_<19> idx19; typedef typename boost::result_of< detail::switch_grammar(
 Cases , mpl::int_<20> , mpl::int_<50> ) >::type case20; typedef typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type case_label20; mpl::int_<20> idx20; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<21> , mpl::int_<50> ) >::type case21; typedef typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type case_label21; mpl::int_<21> idx21; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<22> , mpl::int_<50> ) >::type case22; typedef typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type case_label22; mpl::int_<22> idx22; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<23> , mpl::int_<50> ) >::type case23; typedef typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type case_label23; mpl::int_<23> idx23; typedef typename boost::result_of< detail::switch_grammar( Ca
ses , mpl::int_<24> , mpl::int_<50> ) >::type case24; typedef typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type case_label24; mpl::int_<24> idx24; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<25> , mpl::int_<50> ) >::type case25; typedef typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type case_label25; mpl::int_<25> idx25; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<26> , mpl::int_<50> ) >::type case26; typedef typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type case_label26; mpl::int_<26> idx26; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<27> , mpl::int_<50> ) >::type case27; typedef typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type case_label27; mpl::int_<27> idx27; typedef typename boost::result_of< detail::switch_grammar( Cases
 , mpl::int_<28> , mpl::int_<50> ) >::type case28; typedef typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type case_label28; mpl::int_<28> idx28; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<29> , mpl::int_<50> ) >::type case29; typedef typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type case_label29; mpl::int_<29> idx29; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<30> , mpl::int_<50> ) >::type case30; typedef typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type case_label30; mpl::int_<30> idx30; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<31> , mpl::int_<50> ) >::type case31; typedef typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type case_label31; mpl::int_<31> idx31; typedef typename boost::result_of< detail::switch_grammar( Cases ,
mpl::int_<32> , mpl::int_<50> ) >::type case32; typedef typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type case_label32; mpl::int_<32> idx32; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<33> , mpl::int_<50> ) >::type case33; typedef typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type case_label33; mpl::int_<33> idx33; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<34> , mpl::int_<50> ) >::type case34; typedef typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type case_label34; mpl::int_<34> idx34; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<35> , mpl::int_<50> ) >::type case35; typedef typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type case_label35; mpl::int_<35> idx35; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl
::int_<36> , mpl::int_<50> ) >::type case36; typedef typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type case_label36; mpl::int_<36> idx36; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<37> , mpl::int_<50> ) >::type case37; typedef typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type case_label37; mpl::int_<37> idx37; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<38> , mpl::int_<50> ) >::type case38; typedef typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type case_label38; mpl::int_<38> idx38; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<39> , mpl::int_<50> ) >::type case39; typedef typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type case_label39; mpl::int_<39> idx39; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::i
nt_<40> , mpl::int_<50> ) >::type case40; typedef typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type case_label40; mpl::int_<40> idx40; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<41> , mpl::int_<50> ) >::type case41; typedef typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type case_label41; mpl::int_<41> idx41; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<42> , mpl::int_<50> ) >::type case42; typedef typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type case_label42; mpl::int_<42> idx42; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<43> , mpl::int_<50> ) >::type case43; typedef typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type case_label43; mpl::int_<43> idx43; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_
<44> , mpl::int_<50> ) >::type case44; typedef typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type case_label44; mpl::int_<44> idx44; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<45> , mpl::int_<50> ) >::type case45; typedef typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type case_label45; mpl::int_<45> idx45; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<46> , mpl::int_<50> ) >::type case46; typedef typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type case_label46; mpl::int_<46> idx46; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<47> , mpl::int_<50> ) >::type case47; typedef typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type case_label47; mpl::int_<47> idx47; typedef typename boost::result_of< detail::switch_grammar( Cases , mpl::int_<48
> , mpl::int_<50> ) >::type case48; typedef typename proto::result_of::value< typename proto::result_of::child_c< case48 , 0 >::type >::type case_label48; mpl::int_<48> idx48;
+ mpl::int_<49>
+ idx49;
+ switch(eval(cond, env))
+ {
+ case case_label0::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx0, size ) ) , env ); break; case case_label1::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx1, size ) ) , env ); break; case case_label2::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx2, size ) ) , env ); break; case case_label3::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx3, size ) ) , env ); break; case case_label4::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx4, size ) ) , env ); break; case case_label5::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx5, size ) ) , env ); break; case case_label6::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx6, size ) ) , env ); break; case case_label7::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx7, size ) ) , env ); break; case case_label8::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx8, size ) ) , env ); break; case case_label9::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx9, size ) ) , env ); break; case case_label10::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx10, size ) ) , env ); break; case case_label11::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx11, size ) ) , env ); break; case case_label12::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx12, size ) ) , env ); break; case case_label13::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx13, size ) ) , env ); break; case case_label14::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx14, size ) ) , env ); break; case case_label15::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx15, size ) ) , env ); break; case case_label16::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx16, size ) ) , env ); break; case case_label17::value : eval( proto::child_c<1>( deta
il::switch_grammar()( cases, idx17, size ) ) , env ); break; case case_label18::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx18, size ) ) , env ); break; case case_label19::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx19, size ) ) , env ); break; case case_label20::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx20, size ) ) , env ); break; case case_label21::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx21, size ) ) , env ); break; case case_label22::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx22, size ) ) , env ); break; case case_label23::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx23, size ) ) , env ); break; case case_label24::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx24, size ) ) , env ); break; case case_label25::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx25, size ) ) , env ); break; case case_label26::value :
 eval( proto::child_c<1>( detail::switch_grammar()( cases, idx26, size ) ) , env ); break; case case_label27::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx27, size ) ) , env ); break; case case_label28::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx28, size ) ) , env ); break; case case_label29::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx29, size ) ) , env ); break; case case_label30::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx30, size ) ) , env ); break; case case_label31::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx31, size ) ) , env ); break; case case_label32::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx32, size ) ) , env ); break; case case_label33::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx33, size ) ) , env ); break; case case_label34::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx34, size ) ) , env ); bre
ak; case case_label35::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx35, size ) ) , env ); break; case case_label36::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx36, size ) ) , env ); break; case case_label37::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx37, size ) ) , env ); break; case case_label38::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx38, size ) ) , env ); break; case case_label39::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx39, size ) ) , env ); break; case case_label40::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx40, size ) ) , env ); break; case case_label41::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx41, size ) ) , env ); break; case case_label42::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx42, size ) ) , env ); break; case case_label43::value : eval( proto::child_c<1>( detail::switch_grammar()( cases
, idx43, size ) ) , env ); break; case case_label44::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx44, size ) ) , env ); break; case case_label45::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx45, size ) ) , env ); break; case case_label46::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx46, size ) ) , env ); break; case case_label47::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx47, size ) ) , env ); break; case case_label48::value : eval( proto::child_c<1>( detail::switch_grammar()( cases, idx48, size ) ) , env ); break;
+ default:
+ eval(
+ proto::child_c<0>(
+ detail::switch_grammar()(
+ cases
+ , idx49
+ , size
+ )
+ )
+ , env
+ );
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_TRY_CATCH_EVAL)
+#define PHOENIX_PREPROCESSED_TRY_CATCH_EVAL
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_eval_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_eval_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_eval_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_eval_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_eval_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,477 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0>
+ typename boost::enable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ }
+ template <typename Env, typename Try, typename A0>
+ typename boost::disable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a0
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::enable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::disable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a1
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::enable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::disable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a2
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::enable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::disable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a3
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::enable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::disable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a4
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::enable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::disable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a5
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::enable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::disable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a6
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::enable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::disable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a7
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::enable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::disable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a8
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::enable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::disable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a9
+ )
+ , env);
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,947 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0>
+ typename boost::enable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ }
+ template <typename Env, typename Try, typename A0>
+ typename boost::disable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a0
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::enable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::disable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a1
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::enable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::disable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a2
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::enable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::disable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a3
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::enable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::disable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a4
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::enable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::disable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a5
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::enable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::disable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a6
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::enable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::disable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a7
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::enable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::disable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a8
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::enable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::disable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a9
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::enable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::disable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a10
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::enable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::disable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a11
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::enable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::disable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a12
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::enable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::disable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a13
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::enable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::disable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a14
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::enable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::disable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a15
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::enable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::disable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a16
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::enable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::disable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a17
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::enable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::disable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a18
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::enable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::disable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a19
+ )
+ , env);
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1417 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0>
+ typename boost::enable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ }
+ template <typename Env, typename Try, typename A0>
+ typename boost::disable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a0
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::enable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::disable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a1
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::enable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::disable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a2
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::enable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::disable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a3
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::enable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::disable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a4
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::enable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::disable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a5
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::enable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::disable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a6
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::enable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::disable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a7
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::enable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::disable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a8
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::enable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::disable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a9
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::enable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::disable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a10
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::enable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::disable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a11
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::enable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::disable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a12
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::enable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::disable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a13
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::enable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::disable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a14
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::enable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::disable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a15
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::enable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::disable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a16
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::enable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::disable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a17
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::enable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::disable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a18
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::enable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::disable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a19
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ typename boost::enable_if<
+ proto::matches<
+ A20
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ typename boost::disable_if<
+ proto::matches<
+ A20
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a20
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ typename boost::enable_if<
+ proto::matches<
+ A21
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ typename boost::disable_if<
+ proto::matches<
+ A21
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a21
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ typename boost::enable_if<
+ proto::matches<
+ A22
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ typename boost::disable_if<
+ proto::matches<
+ A22
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a22
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ typename boost::enable_if<
+ proto::matches<
+ A23
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ typename boost::disable_if<
+ proto::matches<
+ A23
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a23
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ typename boost::enable_if<
+ proto::matches<
+ A24
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ typename boost::disable_if<
+ proto::matches<
+ A24
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a24
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ typename boost::enable_if<
+ proto::matches<
+ A25
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ typename boost::disable_if<
+ proto::matches<
+ A25
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a25
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ typename boost::enable_if<
+ proto::matches<
+ A26
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ typename boost::disable_if<
+ proto::matches<
+ A26
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a26
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ typename boost::enable_if<
+ proto::matches<
+ A27
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ typename boost::disable_if<
+ proto::matches<
+ A27
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a27
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ typename boost::enable_if<
+ proto::matches<
+ A28
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ typename boost::disable_if<
+ proto::matches<
+ A28
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a28
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ typename boost::enable_if<
+ proto::matches<
+ A29
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ typename boost::disable_if<
+ proto::matches<
+ A29
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a29
+ )
+ , env);
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,1887 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0>
+ typename boost::enable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ }
+ template <typename Env, typename Try, typename A0>
+ typename boost::disable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a0
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::enable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::disable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a1
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::enable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::disable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a2
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::enable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::disable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a3
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::enable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::disable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a4
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::enable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::disable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a5
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::enable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::disable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a6
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::enable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::disable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a7
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::enable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::disable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a8
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::enable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::disable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a9
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::enable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::disable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a10
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::enable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::disable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a11
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::enable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::disable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a12
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::enable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::disable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a13
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::enable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::disable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a14
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::enable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::disable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a15
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::enable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::disable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a16
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::enable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::disable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a17
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::enable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::disable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a18
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::enable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::disable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a19
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ typename boost::enable_if<
+ proto::matches<
+ A20
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ typename boost::disable_if<
+ proto::matches<
+ A20
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a20
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ typename boost::enable_if<
+ proto::matches<
+ A21
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ typename boost::disable_if<
+ proto::matches<
+ A21
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a21
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ typename boost::enable_if<
+ proto::matches<
+ A22
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ typename boost::disable_if<
+ proto::matches<
+ A22
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a22
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ typename boost::enable_if<
+ proto::matches<
+ A23
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ typename boost::disable_if<
+ proto::matches<
+ A23
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a23
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ typename boost::enable_if<
+ proto::matches<
+ A24
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ typename boost::disable_if<
+ proto::matches<
+ A24
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a24
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ typename boost::enable_if<
+ proto::matches<
+ A25
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ typename boost::disable_if<
+ proto::matches<
+ A25
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a25
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ typename boost::enable_if<
+ proto::matches<
+ A26
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ typename boost::disable_if<
+ proto::matches<
+ A26
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a26
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ typename boost::enable_if<
+ proto::matches<
+ A27
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ typename boost::disable_if<
+ proto::matches<
+ A27
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a27
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ typename boost::enable_if<
+ proto::matches<
+ A28
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ typename boost::disable_if<
+ proto::matches<
+ A28
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a28
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ typename boost::enable_if<
+ proto::matches<
+ A29
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ typename boost::disable_if<
+ proto::matches<
+ A29
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a29
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ typename boost::enable_if<
+ proto::matches<
+ A30
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ typename boost::disable_if<
+ proto::matches<
+ A30
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a30
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ typename boost::enable_if<
+ proto::matches<
+ A31
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ typename boost::disable_if<
+ proto::matches<
+ A31
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a31
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ typename boost::enable_if<
+ proto::matches<
+ A32
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ typename boost::disable_if<
+ proto::matches<
+ A32
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a32
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ typename boost::enable_if<
+ proto::matches<
+ A33
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ typename boost::disable_if<
+ proto::matches<
+ A33
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a33
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ typename boost::enable_if<
+ proto::matches<
+ A34
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ typename boost::disable_if<
+ proto::matches<
+ A34
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a34
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A35
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A35
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a35
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A36
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A36
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a36
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A37
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A37
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a37
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A38
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A38
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a38
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A39
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A39
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a39
+ )
+ , env);
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_eval_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,2357 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0>
+ typename boost::enable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ }
+ template <typename Env, typename Try, typename A0>
+ typename boost::disable_if<
+ proto::matches<
+ A0
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a0
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::enable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1>
+ typename boost::disable_if<
+ proto::matches<
+ A1
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a1
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::enable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2>
+ typename boost::disable_if<
+ proto::matches<
+ A2
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a2
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::enable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3>
+ typename boost::disable_if<
+ proto::matches<
+ A3
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a3
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::enable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ typename boost::disable_if<
+ proto::matches<
+ A4
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a4
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::enable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ typename boost::disable_if<
+ proto::matches<
+ A5
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a5
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::enable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ typename boost::disable_if<
+ proto::matches<
+ A6
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a6
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::enable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ typename boost::disable_if<
+ proto::matches<
+ A7
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a7
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::enable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ typename boost::disable_if<
+ proto::matches<
+ A8
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a8
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::enable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ typename boost::disable_if<
+ proto::matches<
+ A9
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a9
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::enable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ typename boost::disable_if<
+ proto::matches<
+ A10
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a10
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::enable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
+ typename boost::disable_if<
+ proto::matches<
+ A11
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a11
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::enable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
+ typename boost::disable_if<
+ proto::matches<
+ A12
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a12
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::enable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
+ typename boost::disable_if<
+ proto::matches<
+ A13
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a13
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::enable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
+ typename boost::disable_if<
+ proto::matches<
+ A14
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a14
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::enable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
+ typename boost::disable_if<
+ proto::matches<
+ A15
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a15
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::enable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
+ typename boost::disable_if<
+ proto::matches<
+ A16
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a16
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::enable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
+ typename boost::disable_if<
+ proto::matches<
+ A17
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a17
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::enable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
+ typename boost::disable_if<
+ proto::matches<
+ A18
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a18
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::enable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
+ typename boost::disable_if<
+ proto::matches<
+ A19
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a19
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ typename boost::enable_if<
+ proto::matches<
+ A20
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
+ typename boost::disable_if<
+ proto::matches<
+ A20
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a20
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ typename boost::enable_if<
+ proto::matches<
+ A21
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
+ typename boost::disable_if<
+ proto::matches<
+ A21
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a21
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ typename boost::enable_if<
+ proto::matches<
+ A22
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
+ typename boost::disable_if<
+ proto::matches<
+ A22
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a22
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ typename boost::enable_if<
+ proto::matches<
+ A23
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
+ typename boost::disable_if<
+ proto::matches<
+ A23
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a23
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ typename boost::enable_if<
+ proto::matches<
+ A24
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
+ typename boost::disable_if<
+ proto::matches<
+ A24
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a24
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ typename boost::enable_if<
+ proto::matches<
+ A25
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
+ typename boost::disable_if<
+ proto::matches<
+ A25
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a25
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ typename boost::enable_if<
+ proto::matches<
+ A26
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
+ typename boost::disable_if<
+ proto::matches<
+ A26
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a26
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ typename boost::enable_if<
+ proto::matches<
+ A27
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
+ typename boost::disable_if<
+ proto::matches<
+ A27
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a27
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ typename boost::enable_if<
+ proto::matches<
+ A28
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
+ typename boost::disable_if<
+ proto::matches<
+ A28
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a28
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ typename boost::enable_if<
+ proto::matches<
+ A29
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
+ typename boost::disable_if<
+ proto::matches<
+ A29
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a29
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ typename boost::enable_if<
+ proto::matches<
+ A30
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
+ typename boost::disable_if<
+ proto::matches<
+ A30
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a30
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ typename boost::enable_if<
+ proto::matches<
+ A31
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
+ typename boost::disable_if<
+ proto::matches<
+ A31
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a31
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ typename boost::enable_if<
+ proto::matches<
+ A32
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
+ typename boost::disable_if<
+ proto::matches<
+ A32
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a32
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ typename boost::enable_if<
+ proto::matches<
+ A33
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
+ typename boost::disable_if<
+ proto::matches<
+ A33
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a33
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ typename boost::enable_if<
+ proto::matches<
+ A34
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
+ typename boost::disable_if<
+ proto::matches<
+ A34
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a34
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A35
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A35
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a35
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A36
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A36
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a36
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A37
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A37
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a37
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A38
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A38
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a38
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A39
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A39
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a39
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A40
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A40
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a40
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A41
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A41
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a41
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A42
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A42
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a42
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A43
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A43
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a43
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A44
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A44
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a44
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A45
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A45
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a45
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A46
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A46 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a46), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A46
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a46
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A47
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A46 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a46), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A47 , 0 >::type >::type::type & ) { eval(
proto::child_c<1>(a47), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A47
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A46 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a46), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a47
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A48
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A46 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a46), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A47 , 0 >::type >::type::type & ) { eval(
proto::child_c<1>(a47), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A48 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a48), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A48
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A46 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a46), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A47 , 0 >::type >::type::type & ) { eval(
proto::child_c<1>(a47), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a48
+ )
+ , env);
+ }
+ }
+
+
+
+
+
+
+
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::enable_if<
+ proto::matches<
+ A49
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A46 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a46), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A47 , 0 >::type >::type::type & ) { eval(
proto::child_c<1>(a47), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A48 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a48), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A49 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a49), env); }
+ }
+ template <typename Env, typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 boost::disable_if<
+ proto::matches<
+ A49
+ , rule::catch_
+ >
+ , result_type
+ >::type
+ operator()(Env & env, Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , 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
+ {
+ try
+ {
+ eval(proto::child_c<0>(try_), env);
+ }
+ catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a0), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a1), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a2), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a3), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a4), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a5), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type & ) { eval(proto
::child_c<1>(a6), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a7), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a8), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a9), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A10 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a10), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A11 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a11), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A12 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a12), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A13 , 0 >::type >::type::t
ype & ) { eval(proto::child_c<1>(a13), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A14 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a14), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A15 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a15), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A16 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a16), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A17 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a17), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A18 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a18), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A19 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a19), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c<
 A20 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a20), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A21 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a21), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A22 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a22), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A23 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a23), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A24 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a24), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A25 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a25), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A26 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a26), env); } catch( typename proto::result_of::value< typename
 proto::result_of::child_c< A27 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a27), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A28 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a28), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A29 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a29), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A30 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a30), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A31 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a31), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A32 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a32), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A33 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a33), env); } catch( typename proto:
:result_of::value< typename proto::result_of::child_c< A34 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a34), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A35 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a35), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A36 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a36), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A37 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a37), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A38 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a38), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A39 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a39), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A40 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a40), env
); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A41 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a41), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A42 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a42), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A43 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a43), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A44 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a44), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A45 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a45), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A46 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a46), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A47 , 0 >::type >::type::type & ) { eval(
proto::child_c<1>(a47), env); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A48 , 0 >::type >::type::type & ) { eval(proto::child_c<1>(a48), env); }
+ catch(...)
+ {
+ eval(
+ proto::child_c<0>(
+ a49
+ )
+ , env);
+ }
+ }

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,25 @@
+/*==============================================================================
+ Copyright (c) 2011 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !defined(PHOENIX_PREPROCESSED_TRY_CATCH_EXPRESSION)
+#define PHOENIX_PREPROCESSED_TRY_CATCH_EXPRESSION
+
+#if PHOENIX_LIMIT <= 10
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_expression_10.hpp>
+#elif PHOENIX_LIMIT <= 20
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_expression_20.hpp>
+#elif PHOENIX_LIMIT <= 30
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_expression_30.hpp>
+#elif PHOENIX_LIMIT <= 40
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_expression_40.hpp>
+#elif PHOENIX_LIMIT <= 50
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_expression_50.hpp>
+#else
+#error "PHOENIX_LIMIT out of bounds for preprocessed headers"
+#endif
+
+#endif

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_10.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_10.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,183 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Try >
+ struct try_catch<Try >
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ >
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0>
+ struct try_catch<Try , A0>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1>
+ struct try_catch<Try , A0 , A1>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2>
+ struct try_catch<Try , A0 , A1 , A2>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3>
+ struct try_catch<Try , A0 , A1 , A2 , A3>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_20.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_20.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,343 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Try >
+ struct try_catch<Try >
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ >
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0>
+ struct try_catch<Try , A0>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1>
+ struct try_catch<Try , A0 , A1>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2>
+ struct try_catch<Try , A0 , A1 , A2>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3>
+ struct try_catch<Try , A0 , A1 , A2 , A3>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {};
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_30.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_30.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,503 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Try >
+ struct try_catch<Try >
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ >
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0>
+ struct try_catch<Try , A0>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1>
+ struct try_catch<Try , A0 , A1>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2>
+ struct try_catch<Try , A0 , A1 , A2>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3>
+ struct try_catch<Try , A0 , A1 , A2 , A3>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ {};
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_40.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_40.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,663 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Try >
+ struct try_catch<Try >
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ >
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0>
+ struct try_catch<Try , A0>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1>
+ struct try_catch<Try , A0 , A1>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2>
+ struct try_catch<Try , A0 , A1 , A2>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3>
+ struct try_catch<Try , A0 , A1 , A2 , A3>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ {};
+

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_50.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/preprocessed/try_catch_expression_50.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,823 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <typename Try >
+ struct try_catch<Try >
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ >
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0>
+ struct try_catch<Try , A0>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1>
+ struct try_catch<Try , A0 , A1>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2>
+ struct try_catch<Try , A0 , A1 , A2>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3>
+ struct try_catch<Try , A0 , A1 , A2 , A3>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
+ struct try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ {};
+
+
+
+
+
+
+
+
+ template <typename Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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 Try , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename 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 try_catch<Try , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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>
+ : expr_ext<
+ try_catch_actor
+ , tag::try_catch
+ , Try
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , 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: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,10 +1,14 @@
-/*==============================================================================
- Copyright (c) 2005-2010 Joel de Guzman
- Copyright (c) 2010 Thomas Heller
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_STATEMENT_DETAIL_SWITCH_HPP
+#define PHOENIX_STATEMENT_DETAIL_SWITCH_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/statement/detail/preprocessed/switch.hpp>
+
+#endif
+#else
 
 #if !PHOENIX_IS_ITERATING
 
@@ -13,6 +17,22 @@
 
 #include <boost/phoenix/support/iterate.hpp>
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/switch_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
         #define PHOENIX_SWITCH_EVAL_TYPEDEF_R(Z, N, DATA) \
             typedef \
                 typename boost::result_of< \
@@ -55,6 +75,10 @@
         #undef PHOENIX_SWITCH_EVAL_R
         #undef PHOENIX_SWITCH_EVAL_TYPEDEF
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -121,3 +145,4 @@
 
 #endif
 
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_eval.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_eval.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_eval.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EVAL_HPP
+#define PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EVAL_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_eval.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EVAL_HPP
+#define PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EVAL_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/try_catch_eval_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -5,13 +28,11 @@
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !PHOENIX_IS_ITERATING
 
-#ifndef PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EVAL_HPP
-#define PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EVAL_HPP
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
-#include <boost/phoenix/support/iterate.hpp>
-
     #define PHOENIX_TRY_CATCH_EVAL_R(Z, N, DATA) \
             catch( \
                 typename proto::result_of::value< \
@@ -34,6 +55,10 @@
 
     #undef PHOENIX_TRY_CATCH_EVAL_R
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -84,3 +109,5 @@
         }
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_expression.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_expression.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/try_catch_expression.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -1,3 +1,26 @@
+
+#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
+#ifndef PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EXPRESSION_HPP
+#define PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EXPRESSION_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#include <boost/phoenix/statement/detail/preprocessed/try_catch_expression.hpp>
+
+#endif
+#else
+
+#if !PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EXPRESSION_HPP
+#define PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EXPRESSION_HPP
+
+#include <boost/phoenix/support/iterate.hpp>
+
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/try_catch_expression_" PHOENIX_LIMIT_STR ".hpp")
+#endif
+
 /*==============================================================================
     Copyright (c) 2005-2010 Joel de Guzman
     Copyright (c) 2010 Thomas Heller
@@ -5,18 +28,20 @@
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !PHOENIX_IS_ITERATING
-
-#ifndef PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EXPRESSION_HPP
-#define PHOENIX_STATEMENT_DETAIL_TRY_CATCH_EXPRESSION_HPP
 
-#include <boost/phoenix/support/iterate.hpp>
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
 
 #define PHOENIX_ITERATION_PARAMS \
     (3, (0, PHOENIX_CATCH_LIMIT, \
     <boost/phoenix/statement/detail/try_catch_expression.hpp>))
 #include PHOENIX_ITERATE()
 
+#if defined(__WAVE__) && defined(PHOENIX_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
 #endif
 
 #else
@@ -32,3 +57,5 @@
     /**/
 
 #endif
+
+#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/support/detail/iterate.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/support/detail/iterate.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/support/detail/iterate.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -10,7 +10,7 @@
 #include <boost/preprocessor/tuple/elem.hpp>
 
 #ifndef PHOENIX_ITERATION_PARAMS
-#error "PHOENIX_ITERATION_PARAMS not define"
+#error "PHOENIX_ITERATION_PARAMS not defined"
 #endif
 
 #define PHOENIX_ITERATION_PARAMS_SIZE \

Added: sandbox/SOC/2010/phoenix3/boost/phoenix/support/preprocessor/round.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/support/preprocessor/round.hpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,77 @@
+/*=============================================================================
+ Copyright (c) 2011 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_PHOENIX_SUPPORT_PP_ROUND_HPP
+#define BOOST_PHOENIX_SUPPORT_PP_ROUND_HPP
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/comparison/less.hpp>
+#include <boost/preprocessor/control/if.hpp>
+
+#define BOOST_PHOENIX_PP_ROUND_UP(N) \
+ BOOST_PP_CAT(BOOST_PHOENIX_PP_DO_ROUND_UP_, N)() \
+/*
+ BOOST_PP_IF( \
+ BOOST_PP_LESS(N, 50) \
+ , BOOST_PP_CAT(BOOST_PHOENIX_PP_DO_ROUND_UP_, N) \
+ , BOOST_PHOENIX_PP_DO_ROUND_UP_50 \
+ )() \
+ */
+
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_0() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_1() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_2() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_3() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_4() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_5() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_6() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_7() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_8() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_9() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_10() 10
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_11() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_12() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_13() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_14() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_15() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_16() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_17() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_18() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_19() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_20() 20
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_21() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_22() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_23() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_24() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_25() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_26() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_27() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_28() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_29() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_30() 30
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_31() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_32() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_33() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_34() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_35() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_36() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_37() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_38() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_39() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_40() 40
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_41() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_42() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_43() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_44() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_45() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_46() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_47() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_48() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_49() 50
+#define BOOST_PHOENIX_PP_DO_ROUND_UP_50() 50
+
+#endif

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/preprocess/preprocess_phoenix.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/preprocess/preprocess_phoenix.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -0,0 +1,16 @@
+// Copyright (c) 2011 Hartmut Kaiser
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/phoenix/version.hpp>
+#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/bind.hpp>
+#include <boost/phoenix/function.hpp>
+#include <boost/phoenix/fusion.hpp>
+#include <boost/phoenix/object.hpp>
+#include <boost/phoenix/operator.hpp>
+#include <boost/phoenix/scope.hpp>
+#include <boost/phoenix/scope/dynamic.hpp>
+#include <boost/phoenix/statement.hpp>
+#include <boost/phoenix/stl.hpp>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cdecl_mf_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cdecl_mf_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cdecl_mf_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -7,8 +7,6 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 #include <boost/detail/lightweight_test.hpp>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_const_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_const_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_const_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -17,8 +17,6 @@
 #pragma warning(disable: 4514) // unreferenced inline removed
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cv_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cv_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_cv_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -16,8 +16,6 @@
 #pragma warning(disable: 4514) // unreferenced inline removed
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_eq_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_eq_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_eq_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -16,9 +16,6 @@
 #pragma warning(disable: 4514) // unreferenced inline removed
 #endif
 
-
-#define PHOENIX_LIMIT 11
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_fn2_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_fn2_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_fn2_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -16,8 +16,6 @@
 #pragma warning(disable: 4514) // unreferenced inline removed
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_mf2_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_mf2_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_mf2_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -16,8 +16,6 @@
 #pragma warning(disable: 4514) // unreferenced inline removed
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_placeholder_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_placeholder_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_placeholder_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -18,8 +18,6 @@
 
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_rvalue_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_rvalue_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_rvalue_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -18,8 +18,6 @@
 
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -16,8 +16,6 @@
 #pragma warning(disable: 4514) // unreferenced inline removed
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_test.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_test.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/boost_bind_compatibility/bind_test.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -17,8 +17,6 @@
 #pragma warning(disable: 4514) // unreferenced inline removed
 #endif
 
-#define PHOENIX_LIMIT 10
-
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/bind.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -7,7 +7,6 @@
 #include <iostream>
 #include <string>
 
-#include <boost/proto/proto.hpp>
 #include <boost/phoenix/core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -7,8 +7,6 @@
 #include <iostream>
 #include <string>
 
-#define PHOENIX_LIMIT 6
-
 #include <boost/detail/lightweight_test.hpp>
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/operator.hpp>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -11,8 +11,6 @@
 
 #include <typeinfo>
 
-#define PHOENIX_LIMIT 5
-
 #include <boost/detail/lightweight_test.hpp>
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/operator.hpp>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -9,7 +9,6 @@
 #include <algorithm>
 #include <vector>
 
-#define PHOENIX_LIMIT 6
 #include <boost/detail/lightweight_test.hpp>
 #include <boost/fusion/tuple.hpp>
 #include <boost/phoenix/core.hpp>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/statement/switch_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/statement/switch_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/statement/switch_tests.cpp 2011-01-17 03:05:50 EST (Mon, 17 Jan 2011)
@@ -5,8 +5,6 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#define PHOENIX_LIMIT 6
-
 #include <iostream>
 #include <vector>
 #include <algorithm>


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