12 #ifndef BOOST_MPL11_LOGICAL_HPP
13 #define BOOST_MPL11_LOGICAL_HPP
21 namespace boost {
namespace mpl11 {
22 namespace logical_detail {
27 struct if_impl<true> {
28 template <
typename Then,
typename Else>
33 struct if_impl<false> {
34 template <
typename Then,
typename Else>
38 template <
typename x,
typename y>
41 (bool)if_c<(bool)x::type::value, y, x>::type::value
45 template <
typename x,
typename y>
48 (bool)if_c<(bool)x::type::value, x, y>::type::value
53 template <
typename ...xs>
55 : detail::right_folds::variadic<logical_detail::and2, true_, xs...>
58 template <
typename ...xs>
60 : detail::right_folds::variadic<logical_detail::or2, false_, xs...>
65 : bool_<!x::type::value>
68 template <
typename Condition,
typename Then,
typename Else>
70 logical_detail::if_impl<(bool)Condition::type::value>::
71 template result<Then, Else>
75 #endif // !BOOST_MPL11_LOGICAL_HPP
Forward declares logical metafunctions.
Defines boost::mpl11::detail::right_folds::variadic.
Forwards to boost/mpl11/integer.hpp.