master.hpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. // no include guards, this file is intended for multiple inclusions
  7. #ifdef __WAVE__
  8. // this file has been generated from the master.hpp file in the same directory
  9. # pragma wave option(preserve: 0)
  10. #endif
  11. #if !BOOST_PP_IS_ITERATING
  12. # ifndef BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
  13. # define BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
  14. # include <boost/function_types/config/cc_names.hpp>
  15. # include <boost/preprocessor/cat.hpp>
  16. # include <boost/preprocessor/seq/size.hpp>
  17. # include <boost/preprocessor/seq/elem.hpp>
  18. # include <boost/preprocessor/tuple/elem.hpp>
  19. # include <boost/preprocessor/iteration/iterate.hpp>
  20. # include <boost/preprocessor/facilities/expand.hpp>
  21. # include <boost/preprocessor/arithmetic/inc.hpp>
  22. # endif
  23. # include <boost/function_types/detail/encoding/def.hpp>
  24. # include <boost/function_types/detail/encoding/aliases_def.hpp>
  25. # define BOOST_PP_FILENAME_1 \
  26. <boost/function_types/detail/pp_cc_loop/master.hpp>
  27. # define BOOST_PP_ITERATION_LIMITS \
  28. (0,BOOST_PP_SEQ_SIZE(BOOST_FT_CC_NAMES_SEQ)-1)
  29. # include BOOST_PP_ITERATE()
  30. # if !defined(BOOST_FT_config_valid) && BOOST_FT_CC_PREPROCESSING
  31. # define BOOST_FT_cc_id 1
  32. # define BOOST_FT_cc_name implicit_cc
  33. # define BOOST_FT_cc BOOST_PP_EMPTY
  34. # define BOOST_FT_cond callable_builtin
  35. # include BOOST_FT_cc_file
  36. # undef BOOST_FT_cond
  37. # undef BOOST_FT_cc_name
  38. # undef BOOST_FT_cc
  39. # undef BOOST_FT_cc_id
  40. # elif !defined(BOOST_FT_config_valid) // and generating preprocessed file
  41. BOOST_PP_EXPAND(#) ifndef BOOST_FT_config_valid
  42. BOOST_PP_EXPAND(#) define BOOST_FT_cc_id 1
  43. BOOST_PP_EXPAND(#) define BOOST_FT_cc_name implicit_cc
  44. BOOST_PP_EXPAND(#) define BOOST_FT_cc BOOST_PP_EMPTY
  45. BOOST_PP_EXPAND(#) define BOOST_FT_cond callable_builtin
  46. #define _()
  47. BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
  48. #undef _
  49. BOOST_PP_EXPAND(#) undef BOOST_FT_cond
  50. BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
  51. BOOST_PP_EXPAND(#) undef BOOST_FT_cc
  52. BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
  53. BOOST_PP_EXPAND(#) else
  54. BOOST_PP_EXPAND(#) undef BOOST_FT_config_valid
  55. BOOST_PP_EXPAND(#) endif
  56. # else
  57. # undef BOOST_FT_config_valid
  58. # endif
  59. # include <boost/function_types/detail/encoding/aliases_undef.hpp>
  60. # include <boost/function_types/detail/encoding/undef.hpp>
  61. #elif BOOST_FT_CC_PREPROCESSING
  62. # define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_FRAME_ITERATION(1))
  63. # define BOOST_FT_cc_inf \
  64. BOOST_PP_SEQ_ELEM(BOOST_PP_FRAME_ITERATION(1),BOOST_FT_CC_NAMES_SEQ)
  65. # define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
  66. # define BOOST_FT_cc_name BOOST_PP_TUPLE_ELEM(3,1,BOOST_FT_cc_inf)
  67. # define BOOST_FT_cc BOOST_PP_TUPLE_ELEM(3,2,BOOST_FT_cc_inf)
  68. # define BOOST_FT_cond BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
  69. # if BOOST_FT_cond
  70. # define BOOST_FT_config_valid 1
  71. # include BOOST_FT_cc_file
  72. # endif
  73. # undef BOOST_FT_cond
  74. # undef BOOST_FT_cc_pp_name
  75. # undef BOOST_FT_cc_name
  76. # undef BOOST_FT_cc
  77. # undef BOOST_FT_cc_id
  78. # undef BOOST_FT_cc_inf
  79. #else // if generating preprocessed file
  80. BOOST_PP_EXPAND(#) define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_ITERATION())
  81. # define BOOST_FT_cc_inf \
  82. BOOST_PP_SEQ_ELEM(BOOST_PP_ITERATION(),BOOST_FT_CC_NAMES_SEQ)
  83. # define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
  84. # define BOOST_FT_CC_DEF(name,index) \
  85. name BOOST_PP_TUPLE_ELEM(3,index,BOOST_FT_cc_inf)
  86. BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc_name,1)
  87. BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc,2)
  88. # undef BOOST_FT_CC_DEF
  89. # define BOOST_FT_cc_cond_v BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
  90. BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v
  91. # undef BOOST_FT_cc_cond_v
  92. # undef BOOST_FT_cc_pp_name
  93. # undef BOOST_FT_cc_inf
  94. BOOST_PP_EXPAND(#) if BOOST_FT_cond
  95. BOOST_PP_EXPAND(#) define BOOST_FT_config_valid 1
  96. #define _()
  97. BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
  98. #undef _
  99. BOOST_PP_EXPAND(#) endif
  100. BOOST_PP_EXPAND(#) undef BOOST_FT_cond
  101. BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
  102. BOOST_PP_EXPAND(#) undef BOOST_FT_cc
  103. BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
  104. #endif