

// Copyright Aleksey Gurtovoy 2000-2004

//

// Distributed under the Boost Software License, Version 1.0. 

// (See accompanying file LICENSE_1_0.txt or copy at 

// http://www.boost.org/LICENSE_1_0.txt)

//



// Preprocessed version of "boost/mpl/and.hpp" header

// -- DO NOT modify by hand!



namespace boost { namespace mpl {



namespace aux {



template< bool C_, typename T1, typename T2, typename T3, typename T4 >

struct and_impl

    : false_

{

};



template< typename T1, typename T2, typename T3, typename T4 >

struct and_impl< true,T1,T2,T3,T4 >

    : and_impl<

          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value

        , T2, T3, T4

        , true_

        >

{

};



template<>

struct and_impl<

          true

        , true_, true_, true_, true_

        >

    : true_

{

};



} // namespace aux



template<

      typename BOOST_MPL_AUX_NA_PARAM(T1)

    , typename BOOST_MPL_AUX_NA_PARAM(T2)

    , typename T3 = true_, typename T4 = true_, typename T5 = true_

    >

struct and_



    : aux::and_impl<

          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value

        , T2, T3, T4, T5

        >



{

};



BOOST_MPL_AUX_NA_SPEC2(

      2

    , 5

    , and_

    )



}}

