Boost logo

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