
// 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/or.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 or_impl
    : true_ {
};

template<typename T1, typename T2, typename T3, typename T4>
struct or_impl<false, T1, T2, T3, T4>
    : or_impl<
        BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value, T2, T3, T4, false_
    > {
};

template<>
struct or_impl<
    false, false_, false_, false_, false_
>
    : false_ {
};

} // namespace aux

template<
    typename BOOST_MPL_AUX_NA_PARAM(T1), typename BOOST_MPL_AUX_NA_PARAM(T2), typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_

    : aux::or_impl<
    BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)
::value
, T2, T3, T4, T5
> {
};

BOOST_MPL_AUX_NA_SPEC2(
2
, 5
, or_
)

}
}
