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_)
 | 
						|
                    );
 | 
						|
            }
 | 
						|
        };
 | 
						|
    
 |