#ifndef BOOST_HEAP_POLICIES_HPP
#define BOOST_HEAP_POLICIES_HPP
-#include <boost/parameter.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/void.hpp>
#include <boost/concept_check.hpp>
+#include <boost/parameter/name.hpp>
+#include <boost/parameter/template_keyword.hpp>
+#include <boost/parameter/aux_/void.hpp>
+#include <boost/parameter/binding.hpp>
+#include <boost/parameter/parameters.hpp>
+#include <boost/type_traits/conditional.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_void.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
#pragma once
template <bool T>
struct stable:
- boost::parameter::template_keyword<tag::stable, boost::mpl::bool_<T> >
+ boost::parameter::template_keyword<tag::stable, boost::integral_constant<bool, T> >
{};
namespace tag { struct mutable_; }
template <bool T>
struct mutable_:
- boost::parameter::template_keyword<tag::mutable_, boost::mpl::bool_<T> >
+ boost::parameter::template_keyword<tag::mutable_, boost::integral_constant<bool, T> >
{};
template <bool T>
struct constant_time_size:
- boost::parameter::template_keyword<tag::constant_time_size, boost::mpl::bool_<T> >
+ boost::parameter::template_keyword<tag::constant_time_size, boost::integral_constant<bool, T> >
{};
namespace tag { struct store_parent_pointer; }
template <bool T>
struct store_parent_pointer:
- boost::parameter::template_keyword<tag::store_parent_pointer, boost::mpl::bool_<T> >
+ boost::parameter::template_keyword<tag::store_parent_pointer, boost::integral_constant<bool, T> >
{};
namespace tag { struct arity; }
template <unsigned int T>
struct arity:
- boost::parameter::template_keyword<tag::arity, boost::mpl::int_<T> >
+ boost::parameter::template_keyword<tag::arity, boost::integral_constant<int, T> >
{};
namespace tag { struct objects_per_page; }
template <unsigned int T>
struct objects_per_page:
- boost::parameter::template_keyword<tag::objects_per_page, boost::mpl::int_<T> >
+ boost::parameter::template_keyword<tag::objects_per_page, boost::integral_constant<int, T> >
{};
BOOST_PARAMETER_TEMPLATE_KEYWORD(stability_counter_type)
namespace detail {
-namespace mpl = boost::mpl;
-
template <typename bound_args, typename tag_type>
struct has_arg
{
- typedef typename boost::parameter::binding<bound_args, tag_type, mpl::void_>::type type;
- static const bool value = mpl::is_not_void_<type>::type::value;
+ typedef typename boost::parameter::binding<bound_args, tag_type, void>::type type;
+ static const bool value = !boost::is_void<type>::value;
};
template <typename bound_args>
{
static const bool has_stable = has_arg<bound_args, tag::stable>::value;
- typedef typename mpl::if_c<has_stable,
+ typedef typename boost::conditional<has_stable,
typename has_arg<bound_args, tag::stable>::type,
- mpl::bool_<false>
+ boost::false_type
>::type stable_t;
static const bool value = stable_t::value;
{
static const bool has_mutable = has_arg<bound_args, tag::mutable_>::value;
- typedef typename mpl::if_c<has_mutable,
+ typedef typename boost::conditional<has_mutable,
typename has_arg<bound_args, tag::mutable_>::type,
- mpl::bool_<false>
+ boost::false_type
>::type mutable_t;
static const bool value = mutable_t::value;