template_arity_helper.hpp 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // template_arity_helper.hpp
  3. // Overloads of template_arity_helper, used by the template_arity\<\> class template
  4. //
  5. // Copyright 2008 Eric Niebler. Distributed under the Boost
  6. // Software License, Version 1.0. (See accompanying file
  7. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  8. template<
  9. template<typename P0> class F
  10. , typename T0
  11. >
  12. sized_type<2>::type
  13. template_arity_helper(F<T0> **, mpl::int_<1> *);
  14. template<
  15. template<typename P0 , typename P1> class F
  16. , typename T0 , typename T1
  17. >
  18. sized_type<3>::type
  19. template_arity_helper(F<T0 , T1> **, mpl::int_<2> *);
  20. template<
  21. template<typename P0 , typename P1 , typename P2> class F
  22. , typename T0 , typename T1 , typename T2
  23. >
  24. sized_type<4>::type
  25. template_arity_helper(F<T0 , T1 , T2> **, mpl::int_<3> *);
  26. template<
  27. template<typename P0 , typename P1 , typename P2 , typename P3> class F
  28. , typename T0 , typename T1 , typename T2 , typename T3
  29. >
  30. sized_type<5>::type
  31. template_arity_helper(F<T0 , T1 , T2 , T3> **, mpl::int_<4> *);
  32. template<
  33. template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4> class F
  34. , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
  35. >
  36. sized_type<6>::type
  37. template_arity_helper(F<T0 , T1 , T2 , T3 , T4> **, mpl::int_<5> *);
  38. template<
  39. template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 , typename P5> class F
  40. , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
  41. >
  42. sized_type<7>::type
  43. template_arity_helper(F<T0 , T1 , T2 , T3 , T4 , T5> **, mpl::int_<6> *);
  44. template<
  45. template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6> class F
  46. , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
  47. >
  48. sized_type<8>::type
  49. template_arity_helper(F<T0 , T1 , T2 , T3 , T4 , T5 , T6> **, mpl::int_<7> *);
  50. template<
  51. template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 , typename P7> class F
  52. , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
  53. >
  54. sized_type<9>::type
  55. template_arity_helper(F<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> **, mpl::int_<8> *);
  56. template<
  57. template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 , typename P7 , typename P8> class F
  58. , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
  59. >
  60. sized_type<10>::type
  61. template_arity_helper(F<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> **, mpl::int_<9> *);
  62. template<
  63. template<typename P0 , typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 , typename P7 , typename P8 , typename P9> class F
  64. , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
  65. >
  66. sized_type<11>::type
  67. template_arity_helper(F<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> **, mpl::int_<10> *);