arg.hpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. // Copyright Peter Dimov 2001-2002
  2. // Copyright Aleksey Gurtovoy 2001-2004
  3. //
  4. // Distributed under the Boost Software License, Version 1.0.
  5. // (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. //
  8. // Preprocessed version of "boost/mpl/arg.hpp" header
  9. // -- DO NOT modify by hand!
  10. BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
  11. template<> struct arg< -1 >
  12. {
  13. BOOST_STATIC_CONSTANT(int, value = -1);
  14. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  15. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  16. template<
  17. typename U1 = na, typename U2 = na, typename U3 = na
  18. , typename U4 = na, typename U5 = na
  19. >
  20. struct apply
  21. {
  22. typedef U1 type;
  23. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  24. };
  25. };
  26. template<> struct arg<1>
  27. {
  28. BOOST_STATIC_CONSTANT(int, value = 1);
  29. typedef arg<2> next;
  30. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  31. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  32. template<
  33. typename U1 = na, typename U2 = na, typename U3 = na
  34. , typename U4 = na, typename U5 = na
  35. >
  36. struct apply
  37. {
  38. typedef U1 type;
  39. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  40. };
  41. };
  42. template<> struct arg<2>
  43. {
  44. BOOST_STATIC_CONSTANT(int, value = 2);
  45. typedef arg<3> next;
  46. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  47. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  48. template<
  49. typename U1 = na, typename U2 = na, typename U3 = na
  50. , typename U4 = na, typename U5 = na
  51. >
  52. struct apply
  53. {
  54. typedef U2 type;
  55. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  56. };
  57. };
  58. template<> struct arg<3>
  59. {
  60. BOOST_STATIC_CONSTANT(int, value = 3);
  61. typedef arg<4> next;
  62. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  63. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  64. template<
  65. typename U1 = na, typename U2 = na, typename U3 = na
  66. , typename U4 = na, typename U5 = na
  67. >
  68. struct apply
  69. {
  70. typedef U3 type;
  71. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  72. };
  73. };
  74. template<> struct arg<4>
  75. {
  76. BOOST_STATIC_CONSTANT(int, value = 4);
  77. typedef arg<5> next;
  78. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  79. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  80. template<
  81. typename U1 = na, typename U2 = na, typename U3 = na
  82. , typename U4 = na, typename U5 = na
  83. >
  84. struct apply
  85. {
  86. typedef U4 type;
  87. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  88. };
  89. };
  90. template<> struct arg<5>
  91. {
  92. BOOST_STATIC_CONSTANT(int, value = 5);
  93. typedef arg<6> next;
  94. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  95. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  96. template<
  97. typename U1 = na, typename U2 = na, typename U3 = na
  98. , typename U4 = na, typename U5 = na
  99. >
  100. struct apply
  101. {
  102. typedef U5 type;
  103. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  104. };
  105. };
  106. BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
  107. BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE