master.hpp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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. #ifdef __WAVE__
  7. // this file has been generated from the master.hpp file in the same directory
  8. # pragma wave option(preserve: 0)
  9. #endif
  10. #if !defined(BOOST_FT_PREPROCESSING_MODE)
  11. # error "this file is only for two-pass preprocessing"
  12. #endif
  13. #if !defined(BOOST_PP_VALUE)
  14. # include <boost/preprocessor/slot/slot.hpp>
  15. # include <boost/preprocessor/facilities/empty.hpp>
  16. # include <boost/preprocessor/facilities/expand.hpp>
  17. # include <boost/function_types/detail/encoding/def.hpp>
  18. BOOST_PP_EXPAND(#) define BOOST_FT_mfp 0
  19. BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function
  20. # define BOOST_PP_VALUE \
  21. BOOST_FT_function|BOOST_FT_non_variadic
  22. # include __FILE__
  23. # define BOOST_PP_VALUE \
  24. BOOST_FT_function|BOOST_FT_variadic
  25. # include __FILE__
  26. BOOST_PP_EXPAND(#) if !BOOST_FT_NO_CV_FUNC_SUPPORT
  27. # define BOOST_PP_VALUE \
  28. BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const
  29. # include __FILE__
  30. # define BOOST_PP_VALUE \
  31. BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const
  32. # include __FILE__
  33. # define BOOST_PP_VALUE \
  34. BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_volatile
  35. # include __FILE__
  36. # define BOOST_PP_VALUE \
  37. BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_volatile
  38. # include __FILE__
  39. # define BOOST_PP_VALUE \
  40. BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
  41. # include __FILE__
  42. # define BOOST_PP_VALUE \
  43. BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
  44. # include __FILE__
  45. BOOST_PP_EXPAND(#) endif
  46. BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
  47. BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_pointer
  48. # define BOOST_PP_VALUE \
  49. BOOST_FT_pointer|BOOST_FT_non_variadic
  50. # include __FILE__
  51. # define BOOST_PP_VALUE \
  52. BOOST_FT_pointer|BOOST_FT_variadic
  53. # include __FILE__
  54. BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
  55. BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_reference
  56. # define BOOST_PP_VALUE \
  57. BOOST_FT_reference|BOOST_FT_non_variadic
  58. # include __FILE__
  59. # define BOOST_PP_VALUE \
  60. BOOST_FT_reference|BOOST_FT_variadic
  61. # include __FILE__
  62. BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
  63. BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
  64. BOOST_PP_EXPAND(#) define BOOST_FT_mfp 1
  65. BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
  66. # define BOOST_PP_VALUE \
  67. BOOST_FT_member_function_pointer|BOOST_FT_non_variadic
  68. # include __FILE__
  69. # define BOOST_PP_VALUE \
  70. BOOST_FT_member_function_pointer|BOOST_FT_variadic
  71. # include __FILE__
  72. # define BOOST_PP_VALUE \
  73. BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const
  74. # include __FILE__
  75. # define BOOST_PP_VALUE \
  76. BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const
  77. # include __FILE__
  78. # define BOOST_PP_VALUE \
  79. BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_volatile
  80. # include __FILE__
  81. # define BOOST_PP_VALUE \
  82. BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_volatile
  83. # include __FILE__
  84. # define BOOST_PP_VALUE \
  85. BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
  86. # include __FILE__
  87. # define BOOST_PP_VALUE \
  88. BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
  89. # include __FILE__
  90. BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
  91. BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
  92. # include <boost/function_types/detail/encoding/undef.hpp>
  93. #else
  94. # include BOOST_PP_ASSIGN_SLOT(1)
  95. # define BOOST_PP_VALUE BOOST_PP_SLOT(1) & BOOST_FT_kind_mask
  96. # include BOOST_PP_ASSIGN_SLOT(2)
  97. BOOST_PP_EXPAND(#) if !!(BOOST_PP_SLOT(2) & (BOOST_FT_variations))
  98. BOOST_PP_EXPAND(#) if (BOOST_PP_SLOT(1) & (BOOST_FT_cond)) == (BOOST_FT_cond)
  99. # if ( BOOST_PP_SLOT(1) & (BOOST_FT_variadic) )
  100. BOOST_PP_EXPAND(#) define BOOST_FT_ell ...
  101. BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param
  102. # else
  103. BOOST_PP_EXPAND(#) define BOOST_FT_ell
  104. BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
  105. # endif
  106. # if !( BOOST_PP_SLOT(1) & (BOOST_FT_volatile) )
  107. # if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
  108. BOOST_PP_EXPAND(#) define BOOST_FT_cv
  109. # else
  110. BOOST_PP_EXPAND(#) define BOOST_FT_cv const
  111. # endif
  112. # else
  113. # if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
  114. BOOST_PP_EXPAND(#) define BOOST_FT_cv volatile
  115. # else
  116. BOOST_PP_EXPAND(#) define BOOST_FT_cv const volatile
  117. # endif
  118. # endif
  119. BOOST_PP_EXPAND(#) define BOOST_FT_flags BOOST_PP_SLOT(1)
  120. BOOST_PP_EXPAND(#) include BOOST_FT_variate_file
  121. BOOST_PP_EXPAND(#) undef BOOST_FT_cv
  122. BOOST_PP_EXPAND(#) undef BOOST_FT_ell
  123. BOOST_PP_EXPAND(#) undef BOOST_FT_nullary_param
  124. BOOST_PP_EXPAND(#) undef BOOST_FT_flags
  125. BOOST_PP_EXPAND(#) endif
  126. BOOST_PP_EXPAND(#) endif
  127. #endif