Author: vitek Date: Tue Jul 22 14:03:10 2008 New Revision: 678901 URL: http://svn.apache.org/viewvc?rev=678901&view=rev Log: 2008-07-22 Travis Vitek <[EMAIL PROTECTED]>
STDCXX-1001 * include/rw/_meta_arr.h [__IBMCPP__]: Conditionally compile out definitions of traits that are partial specializations of unbound array types to avoid issues on vacpp-9.0. * include/rw/_meta_cat.h: Ditto. * include/rw/_meta_prop.h: Ditto. Modified: stdcxx/branches/4.3.x/include/rw/_meta_arr.h stdcxx/branches/4.3.x/include/rw/_meta_cat.h stdcxx/branches/4.3.x/include/rw/_meta_prop.h Modified: stdcxx/branches/4.3.x/include/rw/_meta_arr.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_arr.h?rev=678901&r1=678900&r2=678901&view=diff ============================================================================== --- stdcxx/branches/4.3.x/include/rw/_meta_arr.h (original) +++ stdcxx/branches/4.3.x/include/rw/_meta_arr.h Tue Jul 22 14:03:10 2008 @@ -46,12 +46,16 @@ typedef _TypeT type; }; +#if !defined (__IBMCPP__) || (900 < __IBMCPP__) + template <class _TypeT> struct __rw_remove_extent<_TypeT []> { typedef _TypeT type; }; +#endif + #define _RWSTD_REMOVE_EXTENT(T) _RW::__rw_remove_extent<T>::type template <class _TypeT> @@ -66,12 +70,16 @@ typedef typename __rw_remove_all_extents<_TypeT>::type type; }; +#if !defined (__IBMCPP__) || (900 < __IBMCPP__) + template <class _TypeT> struct __rw_remove_all_extents<_TypeT []> { typedef typename __rw_remove_all_extents<_TypeT>::type type; }; +#endif + #define _RWSTD_REMOVE_ALL_EXTENTS(T) _RW::__rw_remove_all_extents<T>::type } // namespace __rw Modified: stdcxx/branches/4.3.x/include/rw/_meta_cat.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_cat.h?rev=678901&r1=678900&r2=678901&view=diff ============================================================================== --- stdcxx/branches/4.3.x/include/rw/_meta_cat.h (original) +++ stdcxx/branches/4.3.x/include/rw/_meta_cat.h Tue Jul 22 14:03:10 2008 @@ -134,11 +134,15 @@ { }; +#if !defined (__IBMCPP__) || (900 < __IBMCPP__) + template <class _TypeT> struct __rw_is_array<_TypeT []> : __rw_true_type { }; +#endif + #define _RWSTD_IS_ARRAY(T) _RW::__rw_is_array<T>::value template <class _TypeT> Modified: stdcxx/branches/4.3.x/include/rw/_meta_prop.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_prop.h?rev=678901&r1=678900&r2=678901&view=diff ============================================================================== --- stdcxx/branches/4.3.x/include/rw/_meta_prop.h (original) +++ stdcxx/branches/4.3.x/include/rw/_meta_prop.h Tue Jul 22 14:03:10 2008 @@ -679,12 +679,16 @@ { }; +#if !defined (__IBMCPP__) || (900 < __IBMCPP__) + template <class _TypeT> struct __rw_rank<_TypeT []> : __rw_integral_constant<_RWSTD_SIZE_T, 1 + __rw_rank<_TypeT>::value> { }; +#endif + #define _RWSTD_RANK(T) _RW::__rw_rank<T>::value @@ -702,6 +706,8 @@ { }; +#if !defined (__IBMCPP__) || (900 < __IBMCPP__) + template <class _TypeT, _RWSTD_SIZE_T _Depth> struct __rw_extent<_TypeT [], _Depth> : __rw_integral_constant<_RWSTD_SIZE_T, @@ -709,20 +715,25 @@ { }; +#endif + template <class _TypeT, _RWSTD_SIZE_T _Size> struct __rw_extent<_TypeT [_Size], 0> : __rw_integral_constant<_RWSTD_SIZE_T, _Size> { }; +#if !defined (__IBMCPP__) || (900 < __IBMCPP__) + template <class _TypeT> struct __rw_extent<_TypeT [], 0> : __rw_integral_constant<_RWSTD_SIZE_T, 0> { }; -#define _RWSTD_EXTENT_1(T) _RW::__rw_extent<T>::value -#define _RWSTD_EXTENT_2(T,D) _RW::__rw_extent<T,D>::value +#endif + +#define _RWSTD_EXTENT(T,D) _RW::__rw_extent<T,D>::value } // namespace __rw