|
Boost : |
From: Gennadiy E. Rozental (rogeeff_at_[hidden])
Date: 2001-09-07 10:22:55
I propose following change in composite_traits.hpp to be able to
compile it with Solaris Forte C++ 6 u.1
Gennadiy
cvs diff composite_traits.hpp
Index: composite_traits.hpp
===================================================================
RCS
file: /cvsroot/boost/boost/boost/type_traits/composite_traits.hpp,v
retrieving revision 1.7
diff -r1.7 composite_traits.hpp
65a66,70
> #elif defined (__SUNPRO_CC) && __SUNPRO_CC >= 0x510 // SUN WORKSHOP
6
> template <typename T> struct is_array
> { BOOST_STATIC_CONSTANT(bool, value = false); };
> template <typename T, std::size_t N> struct is_array<T[N]>
> { BOOST_STATIC_CONSTANT(bool, value = true); };
139d143
<
205c209,224
< #else
--- > #elif defined (__SUNPRO_CC) && __SUNPRO_CC >= 0x520 // SUN WORKSHOP 6 > namespace detail{ > template <typename T> struct is_pointer_helper > { BOOST_STATIC_CONSTANT(bool, value = false); }; > template <typename T> struct is_pointer_helper<T*> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > template <typename T> struct is_pointer_helper<T const*> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > template <typename T> struct is_pointer_helper<T volatile*> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > template <typename T> struct is_pointer_helper<T const volatile*> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > } // namespace detail > template <typename T> struct is_pointer > { BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper<T>: :value, ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>:: value >::value >::value)); }; > #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION 272c291,302 < #else --- > #elif defined (__SUNPRO_CC) && __SUNPRO_CC >= 0x510 // SUN WORKSHOP 6 > template <typename T> struct is_reference > { BOOST_STATIC_CONSTANT(bool, value = false); }; > template <typename T> struct is_reference<T&> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > template <typename T> struct is_reference<T const&> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > template <typename T> struct is_reference<T volatile&> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > template <typename T> struct is_reference<T const volatile&> > { BOOST_STATIC_CONSTANT(bool, value = true); }; > #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION 362c392 < #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION --- > #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) || defined ( __SUNPRO_CC) && __SUNPRO_CC >= 0x520
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk