boost/pending/ct_if.hpp
// (C) Copyright Jeremy Siek 2000. // 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) // This header replaces the implementation of ct_if that preceded the // introduction of Boost.MPL with a facade that defers to that reviewed and // accepted library. // Author: Ronald Garcia // Date: 20 October, 2006 #ifndef BOOST_CT_IF_HPP #define BOOST_CT_IF_HPP // A stub implementation in terms of Boost.MPL #include <boost/mpl/if.hpp> #include <boost/mpl/not.hpp> #include <boost/mpl/and.hpp> // true_type and false_type are used by applications of ct_if #include <boost/type_traits/integral_constant.hpp> namespace boost { template <class A, class B> struct ct_and : boost::mpl::and_<A,B> {}; template <class A> struct ct_not : mpl::not_<A> {}; template <bool cond, class A, class B> struct ct_if : mpl::if_c<cond,A,B> {}; template <class cond, class A, class B> struct ct_if_t : mpl::if_<cond,A,B> {}; } // namespace boost #endif // BOOST_CT_IF_HPP