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_gen.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_gen_" BOOST_PHOENIX_LIMIT_STR ".hpp")
0012 #endif
0013 
0014 /*==============================================================================
0015     Copyright (c) 2001-2010 Joel de Guzman
0016     Copyright (c) 2010 Thomas Heller
0017 
0018     Distributed under the Boost Software License, Version 1.0. (See accompanying
0019     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0020 ==============================================================================*/
0021 
0022 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
0023 #pragma wave option(preserve: 1)
0024 #endif
0025 
0026     namespace detail {
0027         template <typename Object, typename MemPtr>
0028         struct mem_fun_ptr_gen
0029         {
0030             mem_fun_ptr_gen(Object const& obj_, MemPtr ptr_)
0031               : obj(obj_)
0032               , ptr(ptr_)
0033             {}
0034 
0035             typename phoenix::expression::mem_fun_ptr<Object, MemPtr>::type const
0036             operator()() const
0037             {
0038                 return phoenix::expression::mem_fun_ptr<Object, MemPtr>::make(obj, ptr);
0039             }
0040 
0041 #define BOOST_PHOENIX_ITERATION_PARAMS                                          \
0042         (3, (1, BOOST_PHOENIX_MEMBER_LIMIT,                                     \
0043         <boost/phoenix/operator/detail/cpp03/mem_fun_ptr_gen.hpp>))             \
0044 
0045 #include BOOST_PHOENIX_ITERATE()
0046 
0047             Object obj;
0048             MemPtr ptr;
0049 
0050         };
0051 
0052         struct make_mem_fun_ptr_gen
0053             : proto::callable
0054         {
0055             template<typename Sig>
0056             struct result;
0057 
0058             template<typename This, typename Object, typename MemPtr>
0059             struct result<This(Object, MemPtr)>
0060             {
0061                 typedef
0062                     mem_fun_ptr_gen<
0063                         typename remove_const<typename remove_reference<Object>::type>::type
0064                       , typename remove_const<typename remove_reference<MemPtr>::type>::type
0065                     >
0066                 type;
0067             };
0068 
0069             template<typename Object, typename MemPtr>
0070             mem_fun_ptr_gen<Object, MemPtr> operator()(Object const & obj, MemPtr ptr) const
0071             {
0072                 return mem_fun_ptr_gen<Object, MemPtr>(obj, ptr);
0073             }
0074         };
0075     }
0076 
0077 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
0078 #pragma wave option(output: null)
0079 #endif
0080 
0081 #endif // BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES
0082 
0083 #else
0084             template <BOOST_PHOENIX_typename_A>
0085             typename phoenix::expression::mem_fun_ptr<
0086                 Object
0087               , MemPtr
0088               , BOOST_PHOENIX_A
0089             >::type const
0090             operator()(BOOST_PHOENIX_A_const_ref_a) const
0091             {
0092                 return phoenix::expression::mem_fun_ptr<
0093                     Object
0094                   , MemPtr
0095                   , BOOST_PHOENIX_A
0096                 >::make(obj, ptr, BOOST_PHOENIX_a);
0097             }
0098 #endif