Drop dependency on Boost.Mpl

This commit is contained in:
Glen Fernandes
2018-09-08 09:19:15 -04:00
parent 7226a74471
commit bbf48ff290
9 changed files with 25 additions and 26 deletions

View File

@ -5,7 +5,7 @@
# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP # define BOOST_CONCEPT_ASSERT_DWA2006430_HPP
# include <boost/config.hpp> # include <boost/config.hpp>
# include <boost/detail/workaround.hpp> # include <boost/config/workaround.hpp>
// The old protocol used a constraints() member function in concept // The old protocol used a constraints() member function in concept
// checking classes. If the compiler supports SFINAE, we can detect // checking classes. If the compiler supports SFINAE, we can detect

View File

@ -10,7 +10,7 @@
# ifdef BOOST_OLD_CONCEPT_SUPPORT # ifdef BOOST_OLD_CONCEPT_SUPPORT
# include <boost/concept/detail/has_constraints.hpp> # include <boost/concept/detail/has_constraints.hpp>
# include <boost/mpl/if.hpp> # include <boost/type_traits/conditional.hpp>
# endif # endif
// This implementation works on Comeau and GCC, all the way back to // This implementation works on Comeau and GCC, all the way back to
@ -49,8 +49,8 @@ struct constraint
template <class Model> template <class Model>
struct requirement_<void(*)(Model)> struct requirement_<void(*)(Model)>
: mpl::if_< : boost::conditional<
concepts::not_satisfied<Model> concepts::not_satisfied<Model>::value
, constraint<Model> , constraint<Model>
, requirement<failed ************ Model::************> , requirement<failed ************ Model::************>
>::type >::type

View File

@ -4,8 +4,8 @@
#ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP #ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP # define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
# include <boost/mpl/bool.hpp> # include <boost/type_traits/integral_constant.hpp>
# include <boost/detail/workaround.hpp> # include <boost/config/workaround.hpp>
# include <boost/concept/detail/backward_compatibility.hpp> # include <boost/concept/detail/backward_compatibility.hpp>
namespace boost { namespace concepts { namespace boost { namespace concepts {
@ -42,7 +42,7 @@ struct not_satisfied
BOOST_STATIC_CONSTANT( BOOST_STATIC_CONSTANT(
bool bool
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) ); , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
typedef mpl::bool_<value> type; typedef boost::integral_constant<bool, value> type;
}; };
}} // namespace boost::concepts::detail }} // namespace boost::concepts::detail

View File

@ -10,7 +10,7 @@
# ifdef BOOST_OLD_CONCEPT_SUPPORT # ifdef BOOST_OLD_CONCEPT_SUPPORT
# include <boost/concept/detail/has_constraints.hpp> # include <boost/concept/detail/has_constraints.hpp>
# include <boost/mpl/if.hpp> # include <boost/type_traits/conditional.hpp>
# endif # endif
# ifdef BOOST_MSVC # ifdef BOOST_MSVC
@ -54,7 +54,7 @@ namespace detail
template <class Model> template <class Model>
struct require struct require
: mpl::if_c< : boost::conditional<
not_satisfied<Model>::value not_satisfied<Model>::value
, detail::constraint , detail::constraint
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION # ifndef BOOST_NO_PARTIAL_SPECIALIZATION

View File

@ -5,7 +5,7 @@
# define BOOST_CONCEPT_USAGE_DWA2006919_HPP # define BOOST_CONCEPT_USAGE_DWA2006919_HPP
# include <boost/concept/assert.hpp> # include <boost/concept/assert.hpp>
# include <boost/detail/workaround.hpp> # include <boost/config/workaround.hpp>
# include <boost/concept/detail/backward_compatibility.hpp> # include <boost/concept/detail/backward_compatibility.hpp>
namespace boost { namespace concepts { namespace boost { namespace concepts {

View File

@ -15,7 +15,6 @@
#define BOOST_CONCEPT_ARCHETYPES_HPP #define BOOST_CONCEPT_ARCHETYPES_HPP
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/mpl/identity.hpp>
#include <functional> #include <functional>
#include <iterator> // iterator tags #include <iterator> // iterator tags
#include <cstddef> // std::ptrdiff_t #include <cstddef> // std::ptrdiff_t

View File

@ -24,9 +24,9 @@
# include <utility> # include <utility>
# include <boost/type_traits/is_same.hpp> # include <boost/type_traits/is_same.hpp>
# include <boost/type_traits/is_void.hpp> # include <boost/type_traits/is_void.hpp>
# include <boost/mpl/assert.hpp> # include <boost/static_assert.hpp>
# include <boost/mpl/bool.hpp> # include <boost/type_traits/integral_constant.hpp>
# include <boost/detail/workaround.hpp> # include <boost/config/workaround.hpp>
# include <boost/concept/usage.hpp> # include <boost/concept/usage.hpp>
# include <boost/concept/detail/concept_def.hpp> # include <boost/concept/detail/concept_def.hpp>
@ -301,14 +301,14 @@ namespace boost
BOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); } BOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); }
private: private:
void test(boost::mpl::false_) void test(boost::false_type)
{ {
// Do we really want a reference here? // Do we really want a reference here?
const Return& r = f(); const Return& r = f();
ignore_unused_variable_warning(r); ignore_unused_variable_warning(r);
} }
void test(boost::mpl::true_) void test(boost::true_type)
{ {
f(); f();
} }
@ -321,14 +321,14 @@ namespace boost
BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); } BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); }
private: private:
void test(boost::mpl::false_) void test(boost::false_type)
{ {
f(arg); // "priming the pump" this way keeps msvc6 happy (ICE) f(arg); // "priming the pump" this way keeps msvc6 happy (ICE)
Return r = f(arg); Return r = f(arg);
ignore_unused_variable_warning(r); ignore_unused_variable_warning(r);
} }
void test(boost::mpl::true_) void test(boost::true_type)
{ {
f(arg); f(arg);
} }
@ -350,14 +350,14 @@ namespace boost
{ {
BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void<Return>()); } BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void<Return>()); }
private: private:
void test(boost::mpl::false_) void test(boost::false_type)
{ {
f(first,second); f(first,second);
Return r = f(first, second); // require operator() Return r = f(first, second); // require operator()
(void)r; (void)r;
} }
void test(boost::mpl::true_) void test(boost::true_type)
{ {
f(first,second); f(first,second);
} }
@ -966,7 +966,7 @@ namespace boost
{ {
typedef typename C::key_type key_type; typedef typename C::key_type key_type;
typedef typename C::value_type value_type; typedef typename C::value_type value_type;
BOOST_MPL_ASSERT((boost::is_same<key_type,value_type>)); BOOST_STATIC_ASSERT((boost::is_same<key_type,value_type>::value));
} }
}; };
@ -979,7 +979,7 @@ namespace boost
typedef typename C::value_type value_type; typedef typename C::value_type value_type;
typedef typename C::mapped_type mapped_type; typedef typename C::mapped_type mapped_type;
typedef std::pair<const key_type, mapped_type> required_value_type; typedef std::pair<const key_type, mapped_type> required_value_type;
BOOST_MPL_ASSERT((boost::is_same<value_type,required_value_type>)); BOOST_STATIC_ASSERT((boost::is_same<value_type,required_value_type>::value));
} }
}; };

View File

@ -6,7 +6,7 @@
# ifdef BOOST_OLD_CONCEPT_SUPPORT # ifdef BOOST_OLD_CONCEPT_SUPPORT
# include <boost/concept_check/has_constraints.hpp> # include <boost/concept_check/has_constraints.hpp>
# include <boost/mpl/if.hpp> # include <boost/type_traits/conditional.hpp>
# endif # endif
@ -54,7 +54,7 @@ namespace boost
template <class Model> template <class Model>
struct concept_check_<void(*)(Model)> struct concept_check_<void(*)(Model)>
: mpl::if_c< : conditional<
concept_checking::has_constraints<Model>::value concept_checking::has_constraints<Model>::value
, constraint_check<Model> , constraint_check<Model>
, concept_check<Model> , concept_check<Model>

View File

@ -6,7 +6,7 @@
# ifdef BOOST_OLD_CONCEPT_SUPPORT # ifdef BOOST_OLD_CONCEPT_SUPPORT
# include <boost/concept_check/has_constraints.hpp> # include <boost/concept_check/has_constraints.hpp>
# include <boost/mpl/if.hpp> # include <boost/type_traits/conditional.hpp>
# endif # endif
@ -40,7 +40,7 @@ namespace boost
template <class Model> template <class Model>
struct concept_check struct concept_check
: mpl::if_c< : conditional<
concept_checking::has_constraints<Model>::value concept_checking::has_constraints<Model>::value
, concept_checking::constraint_check<Model> , concept_checking::constraint_check<Model>
, concept_checking::concept_check_<Model> , concept_checking::concept_check_<Model>