Chris@16: /*============================================================================== Chris@16: Copyright (c) 2005-2010 Joel de Guzman Chris@16: Copyright (c) 2010 Thomas Heller Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: ==============================================================================*/ Chris@16: namespace boost { namespace phoenix Chris@16: { Chris@101: namespace expression { template struct mem_ptr : expr {}; } namespace rule { struct mem_ptr : expression:: mem_ptr {}; } template struct meta_grammar::case_ : enable_rule {}; namespace functional { typedef proto::functional::make_expr make_mem_ptr; } namespace result_of { template struct make_mem_ptr : boost::result_of< functional:: make_mem_ptr( Lhs, Rhs ) > {}; } template inline typename result_of::make_mem_ptr::type make_mem_ptr(Lhs const & lhs, Rhs const & rhs) { return functional::make_mem_ptr()(lhs, rhs); } Chris@16: template<> Chris@16: struct phoenix_generator::case_ Chris@16: : proto::or_< Chris@16: proto::when< Chris@16: proto::and_< Chris@16: proto::mem_ptr > Chris@16: , proto::if_ > >()> Chris@16: > Chris@16: , proto::call)> Chris@16: > Chris@16: , proto::otherwise< Chris@16: proto::call(proto::_)> Chris@16: > Chris@16: > Chris@16: {}; Chris@16: namespace result_of Chris@16: { Chris@16: template < Chris@16: typename Context Chris@16: , 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 Chris@16: , typename Dummy = void Chris@16: > Chris@16: struct mem_fun_ptr_eval; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; typedef typename evaluator::impl< A13 , Context , proto::empty_env >::result_type child13; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; typedef typename evaluator::impl< A13 , Context , proto::empty_env >::result_type child13; typedef typename evaluator::impl< A14 , Context , proto::empty_env >::result_type child14; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; typedef typename evaluator::impl< A13 , Context , proto::empty_env >::result_type child13; typedef typename evaluator::impl< A14 , Context , proto::empty_env >::result_type child14; typedef typename evaluator::impl< A15 , Context , proto::empty_env >::result_type child15; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; typedef typename evaluator::impl< A13 , Context , proto::empty_env >::result_type child13; typedef typename evaluator::impl< A14 , Context , proto::empty_env >::result_type child14; typedef typename evaluator::impl< A15 , Context , proto::empty_env >::result_type child15; typedef typename evaluator::impl< A16 , Context , proto::empty_env >::result_type child16; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; typedef typename evaluator::impl< A13 , Context , proto::empty_env >::result_type child13; typedef typename evaluator::impl< A14 , Context , proto::empty_env >::result_type child14; typedef typename evaluator::impl< A15 , Context , proto::empty_env >::result_type child15; typedef typename evaluator::impl< A16 , Context , proto::empty_env >::result_type child16; typedef typename evaluator::impl< A17 , Context , proto::empty_env >::result_type child17; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; typedef typename evaluator::impl< A13 , Context , proto::empty_env >::result_type child13; typedef typename evaluator::impl< A14 , Context , proto::empty_env >::result_type child14; typedef typename evaluator::impl< A15 , Context , proto::empty_env >::result_type child15; typedef typename evaluator::impl< A16 , Context , proto::empty_env >::result_type child16; typedef typename evaluator::impl< A17 , Context , proto::empty_env >::result_type child17; typedef typename evaluator::impl< A18 , Context , proto::empty_env >::result_type child18; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: typedef typename evaluator::impl< A0 , Context , proto::empty_env >::result_type child0; typedef typename evaluator::impl< A1 , Context , proto::empty_env >::result_type child1; typedef typename evaluator::impl< A2 , Context , proto::empty_env >::result_type child2; typedef typename evaluator::impl< A3 , Context , proto::empty_env >::result_type child3; typedef typename evaluator::impl< A4 , Context , proto::empty_env >::result_type child4; typedef typename evaluator::impl< A5 , Context , proto::empty_env >::result_type child5; typedef typename evaluator::impl< A6 , Context , proto::empty_env >::result_type child6; typedef typename evaluator::impl< A7 , Context , proto::empty_env >::result_type child7; typedef typename evaluator::impl< A8 , Context , proto::empty_env >::result_type child8; typedef typename evaluator::impl< A9 , Context , proto::empty_env >::result_type child9; typedef typename evaluator::impl< A10 , Context , proto::empty_env >::result_type child10; typedef typename evaluator::impl< A11 , Context , proto::empty_env >::result_type child11; typedef typename evaluator::impl< A12 , Context , proto::empty_env >::result_type child12; typedef typename evaluator::impl< A13 , Context , proto::empty_env >::result_type child13; typedef typename evaluator::impl< A14 , Context , proto::empty_env >::result_type child14; typedef typename evaluator::impl< A15 , Context , proto::empty_env >::result_type child15; typedef typename evaluator::impl< A16 , Context , proto::empty_env >::result_type child16; typedef typename evaluator::impl< A17 , Context , proto::empty_env >::result_type child17; typedef typename evaluator::impl< A18 , Context , proto::empty_env >::result_type child18; typedef typename evaluator::impl< A19 , Context , proto::empty_env >::result_type child19; Chris@16: typedef Chris@16: typename boost::result_of< Chris@16: child1( Chris@16: child1 , child2 , child3 , child4 , child5 , child6 , child7 , child8 , child9 , child10 , child11 , child12 , child13 , child14 , child15 , child16 , child17 , child18 , child19 Chris@16: ) Chris@16: >::type Chris@16: type; Chris@16: }; Chris@16: } Chris@16: struct mem_fun_ptr_eval Chris@16: { Chris@16: template Chris@16: struct result; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) , boost::phoenix::eval(a13, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) , boost::phoenix::eval(a13, ctx) , boost::phoenix::eval(a14, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) , boost::phoenix::eval(a13, ctx) , boost::phoenix::eval(a14, ctx) , boost::phoenix::eval(a15, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) , boost::phoenix::eval(a13, ctx) , boost::phoenix::eval(a14, ctx) , boost::phoenix::eval(a15, ctx) , boost::phoenix::eval(a16, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) , boost::phoenix::eval(a13, ctx) , boost::phoenix::eval(a14, ctx) , boost::phoenix::eval(a15, ctx) , boost::phoenix::eval(a16, ctx) , boost::phoenix::eval(a17, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) , boost::phoenix::eval(a13, ctx) , boost::phoenix::eval(a14, ctx) , boost::phoenix::eval(a15, ctx) , boost::phoenix::eval(a16, ctx) , boost::phoenix::eval(a17, ctx) , boost::phoenix::eval(a18, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: struct result Chris@16: : result Chris@16: {}; Chris@16: template Chris@16: struct result Chris@16: : result_of::mem_fun_ptr_eval Chris@16: {}; Chris@16: template Chris@16: typename result_of::mem_fun_ptr_eval::type Chris@16: operator()( Chris@16: A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 Chris@16: , Context const & ctx Chris@16: ) const Chris@16: { Chris@16: return Chris@16: ( Chris@16: get_pointer(boost::phoenix::eval(a0, ctx)) Chris@16: ->*boost::phoenix::eval(a1, ctx) Chris@16: )( Chris@16: boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx) , boost::phoenix::eval(a10, ctx) , boost::phoenix::eval(a11, ctx) , boost::phoenix::eval(a12, ctx) , boost::phoenix::eval(a13, ctx) , boost::phoenix::eval(a14, ctx) , boost::phoenix::eval(a15, ctx) , boost::phoenix::eval(a16, ctx) , boost::phoenix::eval(a17, ctx) , boost::phoenix::eval(a18, ctx) , boost::phoenix::eval(a19, ctx) Chris@16: ); Chris@16: } Chris@16: Chris@16: }; Chris@16: template Chris@16: struct default_actions::when Chris@16: : call Chris@16: {}; Chris@16: }}