EVOLUTION-MANAGER
Edit File: expression_10.hpp
/*============================================================================= Copyright (c) 2005-2010 Joel de Guzman Copyright (c) 2010 Eric Niebler Copyright (c) 2010 Thomas Heller Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ template < template <typename> class Actor , typename Tag , typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename Dummy = void> struct expr_ext; template < typename Tag , typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename Dummy = void > struct expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> {}; template <template <typename> class Actor, typename Tag, typename A0> struct expr_ext<Actor, Tag, A0> : proto::transform<expr_ext<Actor, Tag, A0>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1> struct expr_ext<Actor, Tag, A0 , A1> : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2> struct expr_ext<Actor, Tag, A0 , A1 , A2> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3> struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2 , a3) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4> struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; }; template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9> struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int> { typedef typename proto::result_of::make_expr< Tag , phoenix_default_domain , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type >::type base_type; typedef Actor<base_type> type; typedef typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar proto_grammar; static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9) { actor<base_type> const e = { proto::make_expr< Tag , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9) }; return e; } template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<expr_ext>::template impl<Expr, State, Data> {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; };