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