preprocessor.hpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // (C) Copyright Ion Gaztanaga 2008-2013. Distributed under the Boost
  4. // Software License, Version 1.0. (See accompanying file
  5. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // See http://www.boost.org/libs/intrusive for documentation.
  8. //
  9. //////////////////////////////////////////////////////////////////////////////
  10. #ifndef BOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
  11. #define BOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
  12. #if (defined _MSC_VER) && (_MSC_VER >= 1200)
  13. # pragma once
  14. #endif
  15. #include <boost/intrusive/detail/config_begin.hpp>
  16. #include <boost/intrusive/detail/workaround.hpp>
  17. #include <boost/preprocessor/iteration/local.hpp>
  18. #include <boost/preprocessor/punctuation/paren_if.hpp>
  19. #include <boost/preprocessor/punctuation/comma_if.hpp>
  20. #include <boost/preprocessor/control/expr_if.hpp>
  21. #include <boost/preprocessor/cat.hpp>
  22. #include <boost/preprocessor/repetition/enum.hpp>
  23. #include <boost/preprocessor/repetition/enum_params.hpp>
  24. #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
  25. #include <boost/preprocessor/repetition/enum_trailing.hpp>
  26. #include <boost/preprocessor/repetition/enum_shifted_params.hpp>
  27. #include <boost/preprocessor/repetition/enum_shifted.hpp>
  28. #include <boost/preprocessor/repetition/repeat.hpp>
  29. #include <boost/preprocessor/logical/not.hpp>
  30. #include <boost/preprocessor/arithmetic/sub.hpp>
  31. #include <boost/preprocessor/arithmetic/add.hpp>
  32. #include <boost/preprocessor/iteration/iterate.hpp>
  33. #define BOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS 10
  34. #define BOOST_INTRUSIVE_PP_IDENTITY(z, n, data) data
  35. #define BOOST_INTRUSIVE_PP_DECLVAL(z, n, data) \
  36. boost::move_detail::declval< BOOST_PP_CAT(P, n) >() \
  37. //!
  38. #define BOOST_INTRUSIVE_PP_TEMPLATE_PARAM_VOID_DEFAULT(z, n, data) \
  39. BOOST_PP_CAT(class P, n) = void \
  40. //!
  41. #include <boost/intrusive/detail/config_end.hpp>
  42. #endif //#ifndef BOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP