preprocess_arity_loops.cpp 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // (C) Copyright Tobias Schwinger
  2. //
  3. // Use modification and distribution are subject to the boost Software License,
  4. // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
  5. //------------------------------------------------------------------------------
  6. #if !defined(BOOST_FT_PREPROCESSING_MODE)
  7. # ifndef __WAVE__
  8. # error "Boost.Wave preprocessor required"
  9. # endif
  10. # include <boost/preprocessor/seq/cat.hpp>
  11. # include <boost/preprocessor/stringize.hpp>
  12. # if BOOST_PP_NIL // enable dependency scanning for dynamically included files
  13. # include <boost/function_types/detail/encoding/def.hpp>
  14. # include <boost/function_types/detail/components_impl/master.hpp>
  15. # include <boost/function_types/detail/synthesize_impl/master.hpp>
  16. # include <boost/function_types/detail/classifier_impl/master.hpp>
  17. # endif
  18. # pragma wave option(line: 0, preserve: 2)
  19. timestamp file
  20. # pragma wave option(output: null)
  21. # define BOOST_FT_PREPROCESSING_MODE
  22. # define BOOST_FT_HEADER \
  23. BOOST_PP_SEQ_CAT((arity)(BOOST_FT_MAX_ARITY)(_)(BOOST_FT_mfp)).hpp
  24. #define BOOST_FT_OUT_FILE \
  25. BOOST_PP_STRINGIZE(../../../BOOST_FT_al_path/BOOST_FT_HEADER)
  26. # define BOOST_FT_al_path boost/function_types/detail/components_impl
  27. # include __FILE__
  28. # undef BOOST_FT_al_path
  29. # define BOOST_FT_al_path boost/function_types/detail/synthesize_impl
  30. # include __FILE__
  31. # undef BOOST_FT_al_path
  32. # define BOOST_FT_al_path boost/function_types/detail/classifier_impl
  33. # include __FILE__
  34. # undef BOOST_FT_al_path
  35. #elif !defined(BOOST_FT_mfp)
  36. # define BOOST_FT_mfp 0
  37. # include __FILE__
  38. # undef BOOST_FT_mfp
  39. # define BOOST_FT_mfp 1
  40. # include __FILE__
  41. # undef BOOST_FT_mfp
  42. #elif !defined(BOOST_FT_MAX_ARITY)
  43. # define BOOST_FT_FROM_ARITY 0
  44. # define BOOST_FT_MAX_ARITY 10
  45. # include __FILE__
  46. # define BOOST_FT_FROM_ARITY 10
  47. # define BOOST_FT_MAX_ARITY 20
  48. # include __FILE__
  49. # define BOOST_FT_FROM_ARITY 20
  50. # define BOOST_FT_MAX_ARITY 30
  51. # include __FILE__
  52. # define BOOST_FT_FROM_ARITY 30
  53. # define BOOST_FT_MAX_ARITY 40
  54. # include __FILE__
  55. # define BOOST_FT_FROM_ARITY 40
  56. # define BOOST_FT_MAX_ARITY 50
  57. # include __FILE__
  58. #else
  59. # pragma message(generating BOOST_FT_OUT_FILE)
  60. # pragma wave option(preserve: 2, output: BOOST_FT_OUT_FILE)
  61. # include <boost/function_types/detail/pp_arity_loop.hpp>
  62. # undef BOOST_FT_MAX_ARITY
  63. #endif