text: /*==============================================================================
      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 Expr
              , 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 A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void
              , typename Dummy = void>
          struct actor;
          template <typename Expr>
          struct nullary_actor_result
          {
              typedef
                  typename boost::phoenix::evaluator::impl<
                      Expr const&
                    , vector2<
                          vector1<const ::boost::phoenix::actor<Expr> *> &
                        , default_actions
                      > const &
                    , proto::empty_env
                  >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0>
          struct actor<Expr, A0>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector2<const ::boost::phoenix::actor<Expr> *, A0> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1>
          struct actor<Expr, A0 , A1>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector3<const ::boost::phoenix::actor<Expr> *, A0 , A1> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2>
          struct actor<Expr, A0 , A1 , A2>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector4<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3>
          struct actor<Expr, A0 , A1 , A2 , A3>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector5<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector6<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector7<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector8<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector9<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector10<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector11<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector12<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector13<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector14<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector15<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector16<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector17<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector18<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector19<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector20<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
      
      
      
      
      
      
      
          template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
          struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
          {
              typedef
                  typename phoenix::evaluator::
                      impl<
                          Expr const&
                        , vector2<
                              vector21<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> &
                            , default_actions
                          > const &
                        , proto::empty_env
                      >::result_type
                  type;
          };
  