diff --git a/include/boost/type_traits/composite_traits.hpp b/include/boost/type_traits/composite_traits.hpp index 4a4980e..11c6a7f 100644 --- a/include/boost/type_traits/composite_traits.hpp +++ b/include/boost/type_traits/composite_traits.hpp @@ -864,6 +864,8 @@ template } +#ifndef __BORLANDC__ + namespace detail { template @@ -878,10 +880,11 @@ namespace detail template struct apply { - static T& make_t(); + static T& make_t; + typedef apply self_type; BOOST_STATIC_CONSTANT( - bool, value = (1 == sizeof(detail::is_member_function_pointer_helper(make_t()))) ); + bool, value = (1 == sizeof(detail::is_member_function_pointer_helper(self_type::make_t))) ); }; }; } @@ -892,6 +895,25 @@ struct is_member_function_pointer : ::boost::detail::is_member_function_pointer_ >::template apply {}; +#else // Borland C++ + +template +struct is_member_function_pointer +{ + static T& m_t; + BOOST_STATIC_CONSTANT( + bool, value = + (1 == sizeof(detail::is_member_function_pointer_helper(m_t))) ); +}; + +template +struct is_member_function_pointer +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +#endif + template <> struct is_member_function_pointer {