1 // Copyright Cromwell D. Enage 2019.
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
6 #ifndef BOOST_PARAMETER_AUX_IS_PLACEHOLDER_HPP
7 #define BOOST_PARAMETER_AUX_IS_PLACEHOLDER_HPP
9 #include <boost/parameter/config.hpp>
11 #if defined(BOOST_PARAMETER_CAN_USE_MP11)
12 #include <boost/mp11/integral.hpp>
14 #include <boost/mpl/bool.hpp>
17 namespace boost { namespace parameter { namespace aux {
20 struct is_mpl_placeholder
21 #if defined(BOOST_PARAMETER_CAN_USE_MP11)
22 : ::boost::mp11::mp_false
24 : ::boost::mpl::false_
28 }}} // namespace boost::parameter::aux
30 #include <boost/mpl/arg_fwd.hpp>
32 namespace boost { namespace parameter { namespace aux {
35 struct is_mpl_placeholder< ::boost::mpl::arg<I> >
36 #if defined(BOOST_PARAMETER_CAN_USE_MP11)
37 : ::boost::mp11::mp_true
43 }}} // namespace boost::parameter::aux
45 #if defined(BOOST_PARAMETER_CAN_USE_MP11)
46 #include <boost/mp11/bind.hpp>
48 namespace boost { namespace parameter { namespace aux {
51 struct is_mp11_placeholder : ::boost::mp11::mp_false
55 template < ::std::size_t I>
56 struct is_mp11_placeholder< ::boost::mp11::mp_arg<I> >
57 : ::boost::mp11::mp_true
60 }}} // namespace boost::parameter::aux
62 #endif // BOOST_PARAMETER_CAN_USE_MP11
63 #endif // include guard