construct_funop.hpp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. ///////////////////////////////////////////////////////////////////////////////
  2. /// \file construct_funop.hpp
  3. /// Overloads of construct_\<\>::operator().
  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<typename A0>
  9. BOOST_FORCEINLINE
  10. Type operator ()(A0 &a0) const
  11. {
  12. return Type(a0);
  13. }
  14. template<typename A0 , typename A1>
  15. BOOST_FORCEINLINE
  16. Type operator ()(A0 &a0 , A1 &a1) const
  17. {
  18. return Type(a0 , a1);
  19. }
  20. template<typename A0 , typename A1 , typename A2>
  21. BOOST_FORCEINLINE
  22. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2) const
  23. {
  24. return Type(a0 , a1 , a2);
  25. }
  26. template<typename A0 , typename A1 , typename A2 , typename A3>
  27. BOOST_FORCEINLINE
  28. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3) const
  29. {
  30. return Type(a0 , a1 , a2 , a3);
  31. }
  32. template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
  33. BOOST_FORCEINLINE
  34. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4) const
  35. {
  36. return Type(a0 , a1 , a2 , a3 , a4);
  37. }
  38. template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
  39. BOOST_FORCEINLINE
  40. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5) const
  41. {
  42. return Type(a0 , a1 , a2 , a3 , a4 , a5);
  43. }
  44. template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
  45. BOOST_FORCEINLINE
  46. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6) const
  47. {
  48. return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6);
  49. }
  50. template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
  51. BOOST_FORCEINLINE
  52. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7) const
  53. {
  54. return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
  55. }
  56. template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
  57. BOOST_FORCEINLINE
  58. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8) const
  59. {
  60. return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
  61. }
  62. template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
  63. BOOST_FORCEINLINE
  64. Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8 , A9 &a9) const
  65. {
  66. return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
  67. }