/*============================================================================== 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) ==============================================================================*/ namespace detail { template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename boost::result_of< Fun(A0, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename boost::result_of< Fun(A0 , A1, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename boost::result_of< Fun(A0 , A1 , A2, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename proto::result_of::child_c::type A33; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , proto::child_c< 33>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename proto::result_of::child_c::type A33; typedef typename proto::result_of::child_c::type A34; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , proto::child_c< 33>(e) , proto::child_c< 34>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename proto::result_of::child_c::type A33; typedef typename proto::result_of::child_c::type A34; typedef typename proto::result_of::child_c::type A35; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , proto::child_c< 33>(e) , proto::child_c< 34>(e) , proto::child_c< 35>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename proto::result_of::child_c::type A33; typedef typename proto::result_of::child_c::type A34; typedef typename proto::result_of::child_c::type A35; typedef typename proto::result_of::child_c::type A36; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , proto::child_c< 33>(e) , proto::child_c< 34>(e) , proto::child_c< 35>(e) , proto::child_c< 36>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename proto::result_of::child_c::type A33; typedef typename proto::result_of::child_c::type A34; typedef typename proto::result_of::child_c::type A35; typedef typename proto::result_of::child_c::type A36; typedef typename proto::result_of::child_c::type A37; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , proto::child_c< 33>(e) , proto::child_c< 34>(e) , proto::child_c< 35>(e) , proto::child_c< 36>(e) , proto::child_c< 37>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename proto::result_of::child_c::type A33; typedef typename proto::result_of::child_c::type A34; typedef typename proto::result_of::child_c::type A35; typedef typename proto::result_of::child_c::type A36; typedef typename proto::result_of::child_c::type A37; typedef typename proto::result_of::child_c::type A38; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , proto::child_c< 33>(e) , proto::child_c< 34>(e) , proto::child_c< 35>(e) , proto::child_c< 36>(e) , proto::child_c< 37>(e) , proto::child_c< 38>(e) , boost::phoenix::context(s, d) ); } }; template struct call_impl : proto::transform_impl { typedef typename boost::phoenix::result_of::context::type context_type; typedef typename proto::result_of::child_c::type A0; typedef typename proto::result_of::child_c::type A1; typedef typename proto::result_of::child_c::type A2; typedef typename proto::result_of::child_c::type A3; typedef typename proto::result_of::child_c::type A4; typedef typename proto::result_of::child_c::type A5; typedef typename proto::result_of::child_c::type A6; typedef typename proto::result_of::child_c::type A7; typedef typename proto::result_of::child_c::type A8; typedef typename proto::result_of::child_c::type A9; typedef typename proto::result_of::child_c::type A10; typedef typename proto::result_of::child_c::type A11; typedef typename proto::result_of::child_c::type A12; typedef typename proto::result_of::child_c::type A13; typedef typename proto::result_of::child_c::type A14; typedef typename proto::result_of::child_c::type A15; typedef typename proto::result_of::child_c::type A16; typedef typename proto::result_of::child_c::type A17; typedef typename proto::result_of::child_c::type A18; typedef typename proto::result_of::child_c::type A19; typedef typename proto::result_of::child_c::type A20; typedef typename proto::result_of::child_c::type A21; typedef typename proto::result_of::child_c::type A22; typedef typename proto::result_of::child_c::type A23; typedef typename proto::result_of::child_c::type A24; typedef typename proto::result_of::child_c::type A25; typedef typename proto::result_of::child_c::type A26; typedef typename proto::result_of::child_c::type A27; typedef typename proto::result_of::child_c::type A28; typedef typename proto::result_of::child_c::type A29; typedef typename proto::result_of::child_c::type A30; typedef typename proto::result_of::child_c::type A31; typedef typename proto::result_of::child_c::type A32; typedef typename proto::result_of::child_c::type A33; typedef typename proto::result_of::child_c::type A34; typedef typename proto::result_of::child_c::type A35; typedef typename proto::result_of::child_c::type A36; typedef typename proto::result_of::child_c::type A37; typedef typename proto::result_of::child_c::type A38; typedef typename proto::result_of::child_c::type A39; typedef typename boost::result_of< Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39, context_type) >::type result_type; result_type operator()( typename call_impl::expr_param e , typename call_impl::state_param s , typename call_impl::data_param d ) const { return Fun()( proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e) , proto::child_c< 20>(e) , proto::child_c< 21>(e) , proto::child_c< 22>(e) , proto::child_c< 23>(e) , proto::child_c< 24>(e) , proto::child_c< 25>(e) , proto::child_c< 26>(e) , proto::child_c< 27>(e) , proto::child_c< 28>(e) , proto::child_c< 29>(e) , proto::child_c< 30>(e) , proto::child_c< 31>(e) , proto::child_c< 32>(e) , proto::child_c< 33>(e) , proto::child_c< 34>(e) , proto::child_c< 35>(e) , proto::child_c< 36>(e) , proto::child_c< 37>(e) , proto::child_c< 38>(e) , proto::child_c< 39>(e) , boost::phoenix::context(s, d) ); } }; }