Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:59:18

0001 // Copyright Daniel Wallin, David Abrahams 2010.
0002 // Distributed under the Boost Software License, Version 1.0.
0003 // (See accompanying file LICENSE_1_0.txt or copy at
0004 // http://www.boost.org/LICENSE_1_0.txt)
0005 
0006 #ifndef BOOST_PARAMETER_IS_MAYBE_050329_HPP
0007 #define BOOST_PARAMETER_IS_MAYBE_050329_HPP
0008 
0009 namespace boost { namespace parameter { namespace aux {
0010 
0011     struct maybe_base
0012     {
0013     };
0014 }}} // namespace boost::parameter::aux
0015 
0016 #if defined(BOOST_PARAMETER_CAN_USE_MP11)
0017 #include <type_traits>
0018 
0019 namespace boost { namespace parameter { namespace aux {
0020 
0021     template <typename T>
0022     using is_maybe = ::std::is_base_of<
0023         ::boost::parameter::aux::maybe_base
0024       , typename ::std::remove_const<T>::type
0025     >;
0026 }}} // namespace boost::parameter::aux
0027 
0028 #else   // !defined(BOOST_PARAMETER_CAN_USE_MP11)
0029 #include <boost/mpl/bool.hpp>
0030 #include <boost/mpl/if.hpp>
0031 #include <boost/type_traits/is_base_of.hpp>
0032 #include <boost/type_traits/remove_const.hpp>
0033 
0034 namespace boost { namespace parameter { namespace aux {
0035 
0036     template <typename T>
0037     struct is_maybe
0038       : ::boost::mpl::if_<
0039             ::boost::is_base_of<
0040                 ::boost::parameter::aux::maybe_base
0041               , typename ::boost::remove_const<T>::type
0042             >
0043           , ::boost::mpl::true_
0044           , ::boost::mpl::false_
0045         >::type
0046     {
0047     };
0048 }}} // namespace boost::parameter::aux
0049 
0050 #endif  // BOOST_PARAMETER_CAN_USE_MP11
0051 #endif  // include guard
0052