diff --git a/include/boost/function/function_base.hpp b/include/boost/function/function_base.hpp index 9ddff20..5143465 100644 --- a/include/boost/function/function_base.hpp +++ b/include/boost/function/function_base.hpp @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #ifndef BOOST_NO_SFINAE @@ -74,15 +73,15 @@ #if !BOOST_WORKAROUND(__BORLANDC__, < 0x5A0) # define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - typename ::boost::enable_if >::type, \ + typename ::boost::enable_if_c< \ + !(::boost::is_integral::value), \ Type>::type #else // BCC doesn't recognize this depends on a template argument and complains // about the use of 'typename' # define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - ::boost::enable_if<::boost::mpl::not_< \ - ::boost::is_integral >::type, \ + ::boost::enable_if_c< \ + !(::boost::is_integral::value), \ Type>::type #endif diff --git a/include/boost/function/function_template.hpp b/include/boost/function/function_template.hpp index 8aa1579..211b81d 100644 --- a/include/boost/function/function_template.hpp +++ b/include/boost/function/function_template.hpp @@ -717,9 +717,8 @@ namespace boost { template BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if< - typename boost::mpl::not_< - is_integral >::type, + ,typename boost::enable_if_c< + !(is_integral::value), int>::type = 0 #endif // BOOST_NO_SFINAE ) : @@ -730,9 +729,8 @@ namespace boost { template BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if< - typename boost::mpl::not_< - is_integral >::type, + ,typename boost::enable_if_c< + !(is_integral::value), int>::type = 0 #endif // BOOST_NO_SFINAE ) : @@ -780,9 +778,8 @@ namespace boost { // construct. template #ifndef BOOST_NO_SFINAE - typename boost::enable_if< - typename boost::mpl::not_< - is_integral >::type, + typename boost::enable_if_c< + !(is_integral::value), BOOST_FUNCTION_FUNCTION&>::type #else BOOST_FUNCTION_FUNCTION& @@ -1068,9 +1065,8 @@ public: template function(Functor f #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if< - typename boost::mpl::not_< - is_integral >::type, + ,typename boost::enable_if_c< + !(is_integral::value), int>::type = 0 #endif ) : @@ -1080,9 +1076,8 @@ public: template function(Functor f, Allocator a #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if< - typename boost::mpl::not_< - is_integral >::type, + ,typename boost::enable_if_c< + !(is_integral::value), int>::type = 0 #endif ) : @@ -1120,9 +1115,8 @@ public: template #ifndef BOOST_NO_SFINAE - typename boost::enable_if< - typename boost::mpl::not_< - is_integral >::type, + typename boost::enable_if_c< + !(is_integral::value), self_type&>::type #else self_type&