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