arg.hpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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 the main "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, typename U2, typename U3, typename U4, typename U5
  18. >
  19. struct apply
  20. {
  21. typedef U1 type;
  22. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  23. };
  24. };
  25. template<> struct arg<1>
  26. {
  27. BOOST_STATIC_CONSTANT(int, value = 1);
  28. typedef arg<2> next;
  29. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  30. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  31. template<
  32. typename U1, typename U2, typename U3, typename U4, typename U5
  33. >
  34. struct apply
  35. {
  36. typedef U1 type;
  37. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  38. };
  39. };
  40. template<> struct arg<2>
  41. {
  42. BOOST_STATIC_CONSTANT(int, value = 2);
  43. typedef arg<3> next;
  44. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  45. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  46. template<
  47. typename U1, typename U2, typename U3, typename U4, typename U5
  48. >
  49. struct apply
  50. {
  51. typedef U2 type;
  52. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  53. };
  54. };
  55. template<> struct arg<3>
  56. {
  57. BOOST_STATIC_CONSTANT(int, value = 3);
  58. typedef arg<4> next;
  59. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  60. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  61. template<
  62. typename U1, typename U2, typename U3, typename U4, typename U5
  63. >
  64. struct apply
  65. {
  66. typedef U3 type;
  67. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  68. };
  69. };
  70. template<> struct arg<4>
  71. {
  72. BOOST_STATIC_CONSTANT(int, value = 4);
  73. typedef arg<5> next;
  74. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  75. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  76. template<
  77. typename U1, typename U2, typename U3, typename U4, typename U5
  78. >
  79. struct apply
  80. {
  81. typedef U4 type;
  82. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  83. };
  84. };
  85. template<> struct arg<5>
  86. {
  87. BOOST_STATIC_CONSTANT(int, value = 5);
  88. typedef arg<6> next;
  89. BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
  90. BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
  91. template<
  92. typename U1, typename U2, typename U3, typename U4, typename U5
  93. >
  94. struct apply
  95. {
  96. typedef U5 type;
  97. BOOST_MPL_AUX_ASSERT_NOT_NA(type);
  98. };
  99. };
  100. BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
  101. BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE