57 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/*==============================================================================
 | 
						|
    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)
 | 
						|
==============================================================================*/
 | 
						|
#if !BOOST_PHOENIX_IS_ITERATING
 | 
						|
 | 
						|
#ifndef BOOST_PHOENIX_OPERATOR_DETAIL_MEM_FUN_PTR_EVAL_RESULT_OF_HPP
 | 
						|
#define BOOST_PHOENIX_OPERATOR_DETAIL_MEM_FUN_PTR_EVAL_RESULT_OF_HPP
 | 
						|
 | 
						|
#define BOOST_PHOENIX_MEM_FUN_PTR_EVAL_RESULT_OF_CHILD(Z, N, D)                 \
 | 
						|
            typedef                                                             \
 | 
						|
                typename                                                        \
 | 
						|
                evaluator::impl<                                                \
 | 
						|
                    BOOST_PP_CAT(A, N)                                          \
 | 
						|
                  , Context                                                     \
 | 
						|
                  , proto::empty_env                                            \
 | 
						|
                >::result_type                                                  \
 | 
						|
                BOOST_PP_CAT(child, N);                                         \
 | 
						|
        /**/
 | 
						|
 | 
						|
        #define BOOST_PHOENIX_ITERATION_PARAMS                                  \
 | 
						|
            (3, (2, BOOST_PHOENIX_LIMIT,                                        \
 | 
						|
                 <boost/phoenix/operator/detail/cpp03/mem_fun_ptr_eval_result_of.hpp>))
 | 
						|
        #include BOOST_PHOENIX_ITERATE()
 | 
						|
 | 
						|
#undef BOOST_PHOENIX_MEM_FUN_PTR_EVAL_RESULT_OF_CHILD
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
        template <typename Context, BOOST_PHOENIX_typename_A>
 | 
						|
        struct mem_fun_ptr_eval<Context, BOOST_PHOENIX_A>
 | 
						|
        {
 | 
						|
            BOOST_PP_REPEAT(
 | 
						|
                BOOST_PHOENIX_ITERATION
 | 
						|
              , BOOST_PHOENIX_MEM_FUN_PTR_EVAL_RESULT_OF_CHILD
 | 
						|
              , _
 | 
						|
            )
 | 
						|
 | 
						|
            typedef
 | 
						|
                typename boost::result_of<
 | 
						|
                    child1(
 | 
						|
                        BOOST_PP_ENUM_SHIFTED_PARAMS(
 | 
						|
                            BOOST_PHOENIX_ITERATION
 | 
						|
                          , child
 | 
						|
                        )
 | 
						|
                    )
 | 
						|
                >::type
 | 
						|
                type;
 | 
						|
        };
 | 
						|
 | 
						|
#endif
 |