1928 lines
		
	
	
		
			117 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			1928 lines
		
	
	
		
			117 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | /*============================================================================== | ||
|  |     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 Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 2> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type | ||
|  |               , catch_expr> gen_type; | ||
|  |             typedef typename gen_type::type type; | ||
|  |             static type | ||
|  |             make( | ||
|  |                 TryCatch const& try_catch | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) | ||
|  |                       , proto::make_expr< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 2> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type | ||
|  |               , catch_expr> gen_type; | ||
|  |             typedef typename gen_type::type type; | ||
|  |             static type | ||
|  |             make( | ||
|  |                 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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 2> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type | ||
|  |               , catch_expr> gen_type; | ||
|  |             typedef typename gen_type::type type; | ||
|  |             static type | ||
|  |             make( | ||
|  |                 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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 3> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& 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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 3> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 3> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 4> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 4> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 4> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 5> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 5> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 5> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 6> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 6> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 6> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 7> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 7> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 7> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 8> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 8> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 8> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 9> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 9> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 9> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 10> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 10> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 10> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 11> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 11> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 11> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 12> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 12> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 12> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 13> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 13> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 13> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 14> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 14> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 14> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 15> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 15> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 15> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 16> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 16> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 16> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 17> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 17> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 17> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 18> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 18> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 18> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 19> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 19> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 19> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |      | ||
|  |         template <typename TryCatch, typename Exception, typename Capture, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, Capture, Expr, 20> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Capture | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_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 | ||
|  |               , Capture const& capture | ||
|  |               , Expr const& catch_ | ||
|  |             ) | ||
|  |             { | ||
|  |                 return | ||
|  |                     gen_type::make( | ||
|  |                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), capture, catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Exception, typename Expr> | ||
|  |         struct catch_push_back<TryCatch, Exception, void, Expr, 20> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_ | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , catch_exception<Exception> | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_ | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_exception<Exception>(), catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |         template <typename TryCatch, typename Expr> | ||
|  |         struct catch_all_push_back<TryCatch, Expr, 20> | ||
|  |         { | ||
|  |             typedef | ||
|  |                 typename proto::result_of::make_expr< | ||
|  |                     phoenix::tag::catch_all | ||
|  |                   , proto::basic_default_domain | ||
|  |                   , Expr | ||
|  |                 >::type | ||
|  |                 catch_expr; | ||
|  |             typedef phoenix::expression::try_catch< | ||
|  |                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_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< | ||
|  |                             phoenix::tag::catch_all | ||
|  |                           , proto::basic_default_domain | ||
|  |                         >(catch_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      |