and.hpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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_ > struct and_impl
  12. {
  13. template<
  14. typename T1, typename T2, typename T3, typename T4
  15. >
  16. struct result_
  17. : false_
  18. {
  19. };
  20. };
  21. template<> struct and_impl<true>
  22. {
  23. template<
  24. typename T1, typename T2, typename T3, typename T4
  25. >
  26. struct result_
  27. : and_impl<
  28. BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
  29. >::template result_< T2,T3,T4,true_ >
  30. {
  31. };
  32. };
  33. template<>
  34. struct and_impl<true>
  35. ::result_< true_,true_,true_,true_ >
  36. : true_
  37. {
  38. };
  39. } // namespace aux
  40. template<
  41. typename BOOST_MPL_AUX_NA_PARAM(T1)
  42. , typename BOOST_MPL_AUX_NA_PARAM(T2)
  43. , typename T3 = true_, typename T4 = true_, typename T5 = true_
  44. >
  45. struct and_
  46. : aux::and_impl<
  47. BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
  48. >::template result_< T2,T3,T4,T5 >
  49. {
  50. BOOST_MPL_AUX_LAMBDA_SUPPORT(
  51. 5
  52. , and_
  53. , ( T1, T2, T3, T4, T5)
  54. )
  55. };
  56. BOOST_MPL_AUX_NA_SPEC2(
  57. 2
  58. , 5
  59. , and_
  60. )
  61. }}