Initial Commit
This commit is contained in:
@@ -0,0 +1,917 @@
|
||||
/*==============================================================================
|
||||
Copyright (c) 2005-2010 Joel de Guzman
|
||||
Copyright (c) 2010 Thomas Heller
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
==============================================================================*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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_)
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user