bind_type_test.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include <boost/config.hpp>
  2. //
  3. // bind_type_test.cpp
  4. //
  5. // Copyright (c) 2015 Peter Dimov
  6. //
  7. // Distributed under the Boost Software License, Version 1.0.
  8. // See accompanying file LICENSE_1_0.txt or copy at
  9. // http://www.boost.org/LICENSE_1_0.txt
  10. //
  11. #include <boost/bind.hpp>
  12. #include <boost/detail/lightweight_test.hpp>
  13. //
  14. template<int I> struct X
  15. {
  16. };
  17. void fv1( X<1> )
  18. {
  19. }
  20. void fv2( X<1>, X<2> )
  21. {
  22. }
  23. void fv3( X<1>, X<2>, X<3> )
  24. {
  25. }
  26. void fv4( X<1>, X<2>, X<3>, X<4> )
  27. {
  28. }
  29. void fv5( X<1>, X<2>, X<3>, X<4>, X<5> )
  30. {
  31. }
  32. void fv6( X<1>, X<2>, X<3>, X<4>, X<5>, X<6> )
  33. {
  34. }
  35. void fv7( X<1>, X<2>, X<3>, X<4>, X<5>, X<6>, X<7> )
  36. {
  37. }
  38. void fv8( X<1>, X<2>, X<3>, X<4>, X<5>, X<6>, X<7>, X<8> )
  39. {
  40. }
  41. void fv9( X<1>, X<2>, X<3>, X<4>, X<5>, X<6>, X<7>, X<8>, X<9> )
  42. {
  43. }
  44. void test()
  45. {
  46. boost::bind( fv1, _1 )( X<1>() );
  47. boost::bind( fv2, _1, _2 )( X<1>(), X<2>() );
  48. boost::bind( fv3, _1, _2, _3 )( X<1>(), X<2>(), X<3>() );
  49. boost::bind( fv4, _1, _2, _3, _4 )( X<1>(), X<2>(), X<3>(), X<4>() );
  50. boost::bind( fv5, _1, _2, _3, _4, _5 )( X<1>(), X<2>(), X<3>(), X<4>(), X<5>() );
  51. boost::bind( fv6, _1, _2, _3, _4, _5, _6 )( X<1>(), X<2>(), X<3>(), X<4>(), X<5>(), X<6>() );
  52. boost::bind( fv7, _1, _2, _3, _4, _5, _6, _7 )( X<1>(), X<2>(), X<3>(), X<4>(), X<5>(), X<6>(), X<7>() );
  53. boost::bind( fv8, _1, _2, _3, _4, _5, _6, _7, _8 )( X<1>(), X<2>(), X<3>(), X<4>(), X<5>(), X<6>(), X<7>(), X<8>() );
  54. boost::bind( fv9, _1, _2, _3, _4, _5, _6, _7, _8, _9 )( X<1>(), X<2>(), X<3>(), X<4>(), X<5>(), X<6>(), X<7>(), X<8>(), X<9>() );
  55. }
  56. int main()
  57. {
  58. test();
  59. return boost::report_errors();
  60. }