apply.hpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. // Copyright Aleksey Gurtovoy 2000-2004
  2. //
  3. // Distributed under the Boost Software License, Version 1.0.
  4. // (See accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // Preprocessed version of "boost/mpl/apply.hpp" header
  8. // -- DO NOT modify by hand!
  9. namespace boost { namespace mpl {
  10. template<
  11. typename F
  12. >
  13. struct apply0
  14. : apply_wrap0<
  15. typename lambda<F>::type
  16. >
  17. {
  18. };
  19. template<
  20. typename F
  21. >
  22. struct apply< F,na,na,na,na,na >
  23. : apply0<F>
  24. {
  25. };
  26. template<
  27. typename F, typename T1
  28. >
  29. struct apply1
  30. : apply_wrap1<
  31. typename lambda<F>::type
  32. , T1
  33. >
  34. {
  35. };
  36. template<
  37. typename F, typename T1
  38. >
  39. struct apply< F,T1,na,na,na,na >
  40. : apply1< F,T1 >
  41. {
  42. };
  43. template<
  44. typename F, typename T1, typename T2
  45. >
  46. struct apply2
  47. : apply_wrap2<
  48. typename lambda<F>::type
  49. , T1, T2
  50. >
  51. {
  52. };
  53. template<
  54. typename F, typename T1, typename T2
  55. >
  56. struct apply< F,T1,T2,na,na,na >
  57. : apply2< F,T1,T2 >
  58. {
  59. };
  60. template<
  61. typename F, typename T1, typename T2, typename T3
  62. >
  63. struct apply3
  64. : apply_wrap3<
  65. typename lambda<F>::type
  66. , T1, T2, T3
  67. >
  68. {
  69. };
  70. template<
  71. typename F, typename T1, typename T2, typename T3
  72. >
  73. struct apply< F,T1,T2,T3,na,na >
  74. : apply3< F,T1,T2,T3 >
  75. {
  76. };
  77. template<
  78. typename F, typename T1, typename T2, typename T3, typename T4
  79. >
  80. struct apply4
  81. : apply_wrap4<
  82. typename lambda<F>::type
  83. , T1, T2, T3, T4
  84. >
  85. {
  86. };
  87. template<
  88. typename F, typename T1, typename T2, typename T3, typename T4
  89. >
  90. struct apply< F,T1,T2,T3,T4,na >
  91. : apply4< F,T1,T2,T3,T4 >
  92. {
  93. };
  94. template<
  95. typename F, typename T1, typename T2, typename T3, typename T4
  96. , typename T5
  97. >
  98. struct apply5
  99. : apply_wrap5<
  100. typename lambda<F>::type
  101. , T1, T2, T3, T4, T5
  102. >
  103. {
  104. };
  105. /// primary template (not a specialization!)
  106. template<
  107. typename F, typename T1, typename T2, typename T3, typename T4
  108. , typename T5
  109. >
  110. struct apply
  111. : apply5< F,T1,T2,T3,T4,T5 >
  112. {
  113. };
  114. }}