Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:46:04

0001 
0002 #if !BOOST_PHOENIX_IS_ITERATING
0003 
0004 #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
0005 
0006 #include <boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval.hpp>
0007 
0008 #else
0009 
0010 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
0011 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/mem_fun_ptr_eval_" BOOST_PHOENIX_LIMIT_STR ".hpp")
0012 #endif
0013 
0014 /*==============================================================================
0015     Copyright (c) 2005-2010 Joel de Guzman
0016     Copyright (c) 2010 Thomas Heller
0017     Copyright (c) 2016 Kohei Takahashi
0018 
0019     Distributed under the Boost Software License, Version 1.0. (See accompanying
0020     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0021 ==============================================================================*/
0022 
0023 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
0024 #pragma wave option(preserve: 1)
0025 #endif
0026 
0027     #define BOOST_PHOENIX_MEMBER_EVAL(Z, N, D)                                  \
0028         BOOST_PP_COMMA_IF(BOOST_PP_NOT(BOOST_PP_EQUAL(N, 2)))                   \
0029         boost::phoenix::eval(BOOST_PP_CAT(a, N), ctx)                           \
0030     /**/
0031 
0032     #define BOOST_PHOENIX_ITERATION_PARAMS                                      \
0033         (3, (2, BOOST_PHOENIX_LIMIT,                                            \
0034         <boost/phoenix/operator/detail/cpp03/mem_fun_ptr_eval.hpp>))            \
0035     /**/
0036         #include BOOST_PHOENIX_ITERATE()
0037     #undef BOOST_PHOENIX_MEMBER_EVAL
0038 
0039 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
0040 #pragma wave option(output: null)
0041 #endif
0042 
0043 #endif
0044 
0045 #else // BOOST_PHOENIX_IS_ITERATING
0046 
0047         template <typename This, BOOST_PHOENIX_typename_A, typename Context>
0048         struct result<This(BOOST_PHOENIX_A, Context)>
0049             : result<This(BOOST_PHOENIX_A_const_ref, Context)>
0050         {};
0051 
0052         template <typename This, BOOST_PHOENIX_typename_A, typename Context>
0053         struct result<This(BOOST_PHOENIX_A_ref, Context)>
0054             : result_of::mem_fun_ptr_eval<Context, BOOST_PHOENIX_A>
0055         {};
0056 
0057         template <BOOST_PHOENIX_typename_A, typename Context>
0058         typename result_of::mem_fun_ptr_eval<Context, BOOST_PHOENIX_A>::type
0059         operator()(
0060             BOOST_PHOENIX_A_const_ref_a
0061           , Context const & ctx
0062         ) const
0063         {
0064             return
0065                 (
0066                     get_pointer(boost::phoenix::eval(a0, ctx))
0067                     ->*boost::phoenix::eval(a1, ctx)
0068                 )(
0069                     BOOST_PP_REPEAT_FROM_TO(
0070                         2
0071                       , BOOST_PHOENIX_ITERATION
0072                       , BOOST_PHOENIX_MEMBER_EVAL
0073                       , BOOST_PHOENIX_ITERATION
0074                     )
0075                 );
0076         }
0077 
0078 #endif