quote.hpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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< typename T, bool has_type_ >
  11. struct quote_impl
  12. {
  13. typedef typename T::type type;
  14. };
  15. template< typename T >
  16. struct quote_impl< T,false >
  17. {
  18. typedef T type;
  19. };
  20. template<
  21. template< typename P1 > class F
  22. , typename Tag = void_
  23. >
  24. struct quote1
  25. {
  26. template< typename U1 > struct apply
  27. : quote_impl<
  28. F<U1>
  29. , aux::has_type< F<U1> >::value
  30. >
  31. {
  32. };
  33. };
  34. template<
  35. template< typename P1, typename P2 > class F
  36. , typename Tag = void_
  37. >
  38. struct quote2
  39. {
  40. template< typename U1, typename U2 > struct apply
  41. : quote_impl<
  42. F< U1,U2 >
  43. , aux::has_type< F< U1,U2 > >::value
  44. >
  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<
  56. F< U1,U2,U3 >
  57. , aux::has_type< F< U1,U2,U3 > >::value
  58. >
  59. {
  60. };
  61. };
  62. template<
  63. template< typename P1, typename P2, typename P3, typename P4 > class F
  64. , typename Tag = void_
  65. >
  66. struct quote4
  67. {
  68. template<
  69. typename U1, typename U2, typename U3, typename U4
  70. >
  71. struct apply
  72. : quote_impl<
  73. F< U1,U2,U3,U4 >
  74. , aux::has_type< F< U1,U2,U3,U4 > >::value
  75. >
  76. {
  77. };
  78. };
  79. template<
  80. template<
  81. typename P1, typename P2, typename P3, typename P4
  82. , typename P5
  83. >
  84. class F
  85. , typename Tag = void_
  86. >
  87. struct quote5
  88. {
  89. template<
  90. typename U1, typename U2, typename U3, typename U4
  91. , typename U5
  92. >
  93. struct apply
  94. : quote_impl<
  95. F< U1,U2,U3,U4,U5 >
  96. , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
  97. >
  98. {
  99. };
  100. };
  101. }}