function_operator.hpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
  2. #ifndef BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
  3. #define BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
  4. #include <boost/phoenix/function/detail/cpp03/preprocessed/function_operator.hpp>
  5. #endif
  6. #else
  7. #if !BOOST_PHOENIX_IS_ITERATING
  8. #ifndef BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
  9. #define BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
  10. #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
  11. #pragma wave option(preserve: 2, line: 0, output: "preprocessed/function_operator_" BOOST_PHOENIX_LIMIT_STR ".hpp")
  12. #endif
  13. /*==============================================================================
  14. Copyright (c) 2005-2010 Joel de Guzman
  15. Copyright (c) 2010 Thomas Heller
  16. Distributed under the Boost Software License, Version 1.0. (See accompanying
  17. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  18. ==============================================================================*/
  19. #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
  20. #pragma wave option(preserve: 1)
  21. #endif
  22. #define BOOST_PHOENIX_ITERATION_PARAMS \
  23. (3, (1, BOOST_PHOENIX_ACTOR_LIMIT, \
  24. <boost/phoenix/function/detail/cpp03/function_operator.hpp>))
  25. #include BOOST_PHOENIX_ITERATE()
  26. #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
  27. #pragma wave option(output: null)
  28. #endif
  29. #endif
  30. #else
  31. template <typename This, BOOST_PHOENIX_typename_A>
  32. struct result<This(BOOST_PHOENIX_A_const_ref)>
  33. : detail::expression::function_eval<F, BOOST_PHOENIX_A>
  34. {};
  35. template <BOOST_PHOENIX_typename_A>
  36. typename detail::expression::function_eval<F, BOOST_PHOENIX_A>::type const
  37. operator()(BOOST_PHOENIX_A_const_ref_a) const
  38. {
  39. return detail::expression::function_eval<F, BOOST_PHOENIX_A>::make(f, BOOST_PHOENIX_a);
  40. }
  41. #endif
  42. #endif // PHOENIX_DONT_USE_PREPROCESSED_FILES