diff options
Diffstat (limited to 'boost/parameter/aux_/is_placeholder.hpp')
-rw-r--r-- | boost/parameter/aux_/is_placeholder.hpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/boost/parameter/aux_/is_placeholder.hpp b/boost/parameter/aux_/is_placeholder.hpp new file mode 100644 index 0000000000..2ed46d86af --- /dev/null +++ b/boost/parameter/aux_/is_placeholder.hpp @@ -0,0 +1,64 @@ +// Copyright Cromwell D. Enage 2019. +// 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) + +#ifndef BOOST_PARAMETER_AUX_IS_PLACEHOLDER_HPP +#define BOOST_PARAMETER_AUX_IS_PLACEHOLDER_HPP + +#include <boost/parameter/config.hpp> + +#if defined(BOOST_PARAMETER_CAN_USE_MP11) +#include <boost/mp11/integral.hpp> +#else +#include <boost/mpl/bool.hpp> +#endif + +namespace boost { namespace parameter { namespace aux { + + template <typename T> + struct is_mpl_placeholder +#if defined(BOOST_PARAMETER_CAN_USE_MP11) + : ::boost::mp11::mp_false +#else + : ::boost::mpl::false_ +#endif + { + }; +}}} // namespace boost::parameter::aux + +#include <boost/mpl/arg_fwd.hpp> + +namespace boost { namespace parameter { namespace aux { + + template <int I> + struct is_mpl_placeholder< ::boost::mpl::arg<I> > +#if defined(BOOST_PARAMETER_CAN_USE_MP11) + : ::boost::mp11::mp_true +#else + : ::boost::mpl::true_ +#endif + { + }; +}}} // namespace boost::parameter::aux + +#if defined(BOOST_PARAMETER_CAN_USE_MP11) +#include <boost/mp11/bind.hpp> + +namespace boost { namespace parameter { namespace aux { + + template <typename T> + struct is_mp11_placeholder : ::boost::mp11::mp_false + { + }; + + template < ::std::size_t I> + struct is_mp11_placeholder< ::boost::mp11::mp_arg<I> > + : ::boost::mp11::mp_true + { + }; +}}} // namespace boost::parameter::aux + +#endif // BOOST_PARAMETER_CAN_USE_MP11 +#endif // include guard + |