918 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			918 lines
		
	
	
		
			44 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_) | ||
|  |                     ); | ||
|  |             } | ||
|  |         }; | ||
|  |      |