construct.hpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
  2. #ifndef BOOST_PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
  3. #define BOOST_PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
  4. #include <boost/phoenix/object/detail/cpp03/preprocessed/construct.hpp>
  5. #endif
  6. #else
  7. #if !BOOST_PHOENIX_IS_ITERATING
  8. #ifndef BOOST_PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
  9. #define BOOST_PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
  10. #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
  11. #pragma wave option(preserve: 2, line: 0, output: "preprocessed/construct_" 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_COMPOSITE_LIMIT, \
  24. <boost/phoenix/object/detail/cpp03/construct.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 T, BOOST_PHOENIX_typename_A>
  32. inline
  33. typename expression::construct<detail::target<T>, BOOST_PHOENIX_A>::type const
  34. construct(BOOST_PHOENIX_A_const_ref_a)
  35. {
  36. return
  37. expression::
  38. construct<detail::target<T>, BOOST_PHOENIX_A>::
  39. make(detail::target<T>(), BOOST_PHOENIX_a);
  40. }
  41. #endif
  42. #endif // BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES