diff --git a/include/boost/function/function_base.hpp b/include/boost/function/function_base.hpp index 9e01ef9..35c1995 100644 --- a/include/boost/function/function_base.hpp +++ b/include/boost/function/function_base.hpp @@ -25,7 +25,6 @@ #include #include #include -#include #include #include #include @@ -72,19 +71,10 @@ # define BOOST_FUNCTION_TARGET_FIX(x) #endif // __ICL etc -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x5A0) # define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - typename ::boost::enable_if_c<(::boost::type_traits::ice_not< \ - (::boost::is_integral::value)>::value), \ + 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_c<(::boost::type_traits::ice_not< \ - (::boost::is_integral::value)>::value), \ - Type>::type -#endif namespace boost { namespace detail { diff --git a/include/boost/function/function_template.hpp b/include/boost/function/function_template.hpp index ab7abc5..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 enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), + ,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 enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), + ,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 enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), + 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 enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), + ,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 enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), + ,typename boost::enable_if_c< + !(is_integral::value), int>::type = 0 #endif ) : @@ -1120,9 +1115,8 @@ public: template #ifndef BOOST_NO_SFINAE - typename enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), + typename boost::enable_if_c< + !(is_integral::value), self_type&>::type #else self_type&