quote.hpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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/quote.hpp" header
  8. // -- DO NOT modify by hand!
  9. namespace boost { namespace mpl {
  10. template< bool > struct quote_impl
  11. {
  12. template< typename T > struct result_
  13. : T
  14. {
  15. };
  16. };
  17. template<> struct quote_impl<false>
  18. {
  19. template< typename T > struct result_
  20. {
  21. typedef T type;
  22. };
  23. };
  24. template<
  25. template< typename P1 > class F
  26. , typename Tag = void_
  27. >
  28. struct quote1
  29. {
  30. template< typename U1 > struct apply
  31. : quote_impl< aux::has_type< F<U1> >::value >
  32. ::template result_< F<U1> >
  33. {
  34. };
  35. };
  36. template<
  37. template< typename P1, typename P2 > class F
  38. , typename Tag = void_
  39. >
  40. struct quote2
  41. {
  42. template< typename U1, typename U2 > struct apply
  43. : quote_impl< aux::has_type< F< U1,U2 > >::value >
  44. ::template result_< F< U1,U2 > >
  45. {
  46. };
  47. };
  48. template<
  49. template< typename P1, typename P2, typename P3 > class F
  50. , typename Tag = void_
  51. >
  52. struct quote3
  53. {
  54. template< typename U1, typename U2, typename U3 > struct apply
  55. : quote_impl< aux::has_type< F< U1,U2,U3 > >::value >
  56. ::template result_< F< U1,U2,U3 > >
  57. {
  58. };
  59. };
  60. template<
  61. template< typename P1, typename P2, typename P3, typename P4 > class F
  62. , typename Tag = void_
  63. >
  64. struct quote4
  65. {
  66. template<
  67. typename U1, typename U2, typename U3, typename U4
  68. >
  69. struct apply
  70. : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value >
  71. ::template result_< F< U1,U2,U3,U4 > >
  72. {
  73. };
  74. };
  75. template<
  76. template<
  77. typename P1, typename P2, typename P3, typename P4
  78. , typename P5
  79. >
  80. class F
  81. , typename Tag = void_
  82. >
  83. struct quote5
  84. {
  85. template<
  86. typename U1, typename U2, typename U3, typename U4
  87. , typename U5
  88. >
  89. struct apply
  90. : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value >
  91. ::template result_< F< U1,U2,U3,U4,U5 > >
  92. {
  93. };
  94. };
  95. }}