and.hpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Copyright Aleksey Gurtovoy 2000-2004
  2. //
  3. // Distributed under the Boost Software License, Version 1.0.
  4. // (See accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // Preprocessed version of "boost/mpl/and.hpp" header
  8. // -- DO NOT modify by hand!
  9. namespace boost { namespace mpl {
  10. namespace aux {
  11. template< bool C_, typename T1, typename T2, typename T3, typename T4 >
  12. struct and_impl
  13. : false_
  14. {
  15. };
  16. template< typename T1, typename T2, typename T3, typename T4 >
  17. struct and_impl< true,T1,T2,T3,T4 >
  18. : and_impl<
  19. BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
  20. , T2, T3, T4
  21. , true_
  22. >
  23. {
  24. };
  25. template<>
  26. struct and_impl<
  27. true
  28. , true_, true_, true_, true_
  29. >
  30. : true_
  31. {
  32. };
  33. } // namespace aux
  34. template<
  35. typename BOOST_MPL_AUX_NA_PARAM(T1)
  36. , typename BOOST_MPL_AUX_NA_PARAM(T2)
  37. , typename T3 = true_, typename T4 = true_, typename T5 = true_
  38. >
  39. struct and_
  40. : aux::and_impl<
  41. BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
  42. , T2, T3, T4, T5
  43. >
  44. {
  45. BOOST_MPL_AUX_LAMBDA_SUPPORT(
  46. 5
  47. , and_
  48. , ( T1, T2, T3, T4, T5)
  49. )
  50. };
  51. BOOST_MPL_AUX_NA_SPEC2(
  52. 2
  53. , 5
  54. , and_
  55. )
  56. }}