apply_wrap.hpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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_wrap.hpp" header
  8. // -- DO NOT modify by hand!
  9. namespace boost { namespace mpl {
  10. template<
  11. typename F
  12. , typename has_apply_ = typename aux::has_apply<F>::type
  13. >
  14. struct apply_wrap0
  15. {
  16. typedef typename F::template apply<
  17. >::type type;
  18. };
  19. /// workaround for ETI bug
  20. template<>
  21. struct apply_wrap0<int>
  22. {
  23. typedef int type;
  24. };
  25. template<
  26. typename F, typename T1
  27. >
  28. struct apply_wrap1
  29. {
  30. typedef typename F::template apply<
  31. T1
  32. >::type type;
  33. };
  34. /// workaround for ETI bug
  35. template<>
  36. struct apply_wrap1< int,int >
  37. {
  38. typedef int type;
  39. };
  40. template<
  41. typename F, typename T1, typename T2
  42. >
  43. struct apply_wrap2
  44. {
  45. typedef typename F::template apply<
  46. T1, T2
  47. >::type type;
  48. };
  49. /// workaround for ETI bug
  50. template<>
  51. struct apply_wrap2< int,int,int >
  52. {
  53. typedef int type;
  54. };
  55. template<
  56. typename F, typename T1, typename T2, typename T3
  57. >
  58. struct apply_wrap3
  59. {
  60. typedef typename F::template apply<
  61. T1, T2, T3
  62. >::type type;
  63. };
  64. /// workaround for ETI bug
  65. template<>
  66. struct apply_wrap3< int,int,int,int >
  67. {
  68. typedef int type;
  69. };
  70. template<
  71. typename F, typename T1, typename T2, typename T3, typename T4
  72. >
  73. struct apply_wrap4
  74. {
  75. typedef typename F::template apply<
  76. T1, T2, T3, T4
  77. >::type type;
  78. };
  79. /// workaround for ETI bug
  80. template<>
  81. struct apply_wrap4< int,int,int,int,int >
  82. {
  83. typedef int type;
  84. };
  85. template<
  86. typename F, typename T1, typename T2, typename T3, typename T4
  87. , typename T5
  88. >
  89. struct apply_wrap5
  90. {
  91. typedef typename F::template apply<
  92. T1, T2, T3, T4, T5
  93. >::type type;
  94. };
  95. /// workaround for ETI bug
  96. template<>
  97. struct apply_wrap5< int,int,int,int,int,int >
  98. {
  99. typedef int type;
  100. };
  101. }}