summaryrefslogtreecommitdiff
path: root/boost/parameter/aux_/always_true_predicate.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/parameter/aux_/always_true_predicate.hpp')
-rw-r--r--boost/parameter/aux_/always_true_predicate.hpp42
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
+