diff --git a/include/boost/icl/functors.hpp b/include/boost/icl/functors.hpp index 2401b2b..b4971f4 100644 --- a/include/boost/icl/functors.hpp +++ b/include/boost/icl/functors.hpp @@ -8,7 +8,6 @@ Copyright (c) 2007-2009: Joachim Faulhaber #ifndef BOOST_ICL_FUNCTORS_HPP_JOFA_080315 #define BOOST_ICL_FUNCTORS_HPP_JOFA_080315 -#include #include #include #include @@ -20,15 +19,19 @@ namespace boost{namespace icl { // ------------------------------------------------------------------------ template struct identity_based_inplace_combine - : public std::binary_function { + typedef Type& first_argument_type; + typedef const Type& second_argument_type; + typedef void result_type; inline static Type identity_element() { return boost::icl::identity_element::value(); } }; // ------------------------------------------------------------------------ template struct unit_element_based_inplace_combine - : public std::binary_function { + typedef Type& first_argument_type; + typedef const Type& second_argument_type; + typedef void result_type; inline static Type identity_element() { return boost::icl::unit_element::value(); } }; diff --git a/include/boost/icl/type_traits/predicate.hpp b/include/boost/icl/type_traits/predicate.hpp index 405c643..7d7de37 100644 --- a/include/boost/icl/type_traits/predicate.hpp +++ b/include/boost/icl/type_traits/predicate.hpp @@ -8,8 +8,6 @@ Copyright (c) 2010-2010: Joachim Faulhaber #ifndef BOOST_ICL_TYPE_TRAITS_PREDICATE_HPP_JOFA_101102 #define BOOST_ICL_TYPE_TRAITS_PREDICATE_HPP_JOFA_101102 -#include - namespace boost{namespace icl { // naming convention @@ -20,7 +18,12 @@ namespace boost{namespace icl // Unary predicates template - class property : public std::unary_function{}; + class property + { + public: + typedef Type argument_type; + typedef bool result_type; + }; template class member_property : public property @@ -35,7 +38,13 @@ namespace boost{namespace icl // Binary predicates: relations template - class relation : public std::binary_function{}; + class relation + { + public: + typedef LeftT first_argument_type; + typedef RightT second_argument_type; + typedef bool result_type; + }; }} // namespace icl boost diff --git a/test/test_laws.hpp b/test/test_laws.hpp index 90022a6..df7e0c5 100644 --- a/test/test_laws.hpp +++ b/test/test_laws.hpp @@ -8,7 +8,6 @@ Copyright (c) 2008-2010: Joachim Faulhaber #ifndef BOOST_LIBS_ICL_TEST_ICL_LAWS_HPP_JOFA_090119 #define BOOST_LIBS_ICL_TEST_ICL_LAWS_HPP_JOFA_090119 -#include #include #include @@ -16,8 +15,11 @@ namespace boost{namespace icl { template -struct equality : std::binary_function +struct equality { + typedef Type first_argument_type; + typedef Type second_argument_type; + typedef bool result_type; typedef bool (type)(const Type&, const Type&); };