diff options
Diffstat (limited to 'boost/parameter/aux_/always_true_predicate.hpp')
-rw-r--r-- | boost/parameter/aux_/always_true_predicate.hpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/boost/parameter/aux_/always_true_predicate.hpp b/boost/parameter/aux_/always_true_predicate.hpp new file mode 100644 index 0000000000..ca1ece42f6 --- /dev/null +++ b/boost/parameter/aux_/always_true_predicate.hpp @@ -0,0 +1,42 @@ +// 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_ALWAYS_TRUE_PREDICATE_HPP +#define BOOST_PARAMETER_AUX_ALWAYS_TRUE_PREDICATE_HPP + +#include <boost/parameter/config.hpp> +#include <boost/mpl/bool.hpp> + +#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING) +#if defined(BOOST_PARAMETER_CAN_USE_MP11) +#include <boost/mp11/integral.hpp> +#endif +#else +#include <boost/mpl/always.hpp> +#endif + +namespace boost { namespace parameter { namespace aux { + +#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING) + struct always_true_predicate + { + template <typename ...> + struct apply + { + typedef ::boost::mpl::true_ type; + }; + +#if defined(BOOST_PARAMETER_CAN_USE_MP11) + template <typename ...> + using fn = ::boost::mp11::mp_true; +#endif + }; +#else + typedef ::boost::mpl::always< ::boost::mpl::true_> always_true_predicate; +#endif // BOOST_NO_CXX11_VARIADIC_TEMPLATES +}}} // namespace boost::parameter::aux + +#endif // include guard + |