From f132cbf95cd6d2a398b65bfcaaa1c23e2a5aee91 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Sat, 23 Feb 2002 20:52:30 +0000 Subject: [PATCH] eliminate types with implicit conversion to pointers for is_array [SVN r12914] --- include/boost/type_traits/composite_traits.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/boost/type_traits/composite_traits.hpp b/include/boost/type_traits/composite_traits.hpp index d7b4f69..340c062 100644 --- a/include/boost/type_traits/composite_traits.hpp +++ b/include/boost/type_traits/composite_traits.hpp @@ -141,20 +141,21 @@ template - no_type is_array_helper(T*const volatile*, const volatile void*); + yes_type is_array_helper(const volatile void*, const volatile void*, void (*)(T x[])); + template + no_type is_array_helper(T*const volatile*, const volatile void*, void (*)(T x[])); no_type BOOST_TT_DECL is_array_helper(...); } // namespace detail template struct is_array { private: - static T t; + static T t; public: BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< - (1 == sizeof(detail::is_array_helper(&t, t))), + (1 == sizeof(detail::is_array_helper(&t, t, (void(*)(T))0))), ::boost::type_traits::ice_not< ::boost::detail::is_reference_or_const_volatile::value>::value, ::boost::type_traits::ice_not<