stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: [PATCH] 26.valarray.cassign.cpp
Date Fri, 27 Jul 2007 16:05:43 GMT
Farid Zaripov wrote:
>   The 26.valarray.cassign.cpp test expect that UserClass type
> provides +, -, *, / operations. But these operations are not
> defined in rw_value.h.

HP aCC and Intel C++ compile the code but I did notice some
errors from gcc yesterday, and I see Sun C++ has trouble with
the code as well. I tend to trust Intel C++ over the other
compilers, so I wonder if the reasons for the error are
actually compiler bugs. Otherwise there's a bug in Intel
C++ (and HP aCC), or we're relying on some extension. What's
your take on it?

Martin

> 
>   The patch below defines them and also deletes res_array.
> 
> Index: 26.valarray.cassign.cpp
> ===================================================================
> --- 26.valarray.cassign.cpp	(revision 560134)
> +++ 26.valarray.cassign.cpp	(working copy)
> @@ -240,6 +240,19 @@
>  
>  int value (const UserClass &val) { return val.data_.val_; }
>  
> +#define USERCLASS_OPERATOR(op)
> \
> +inline UserClass operator##op (const UserClass& __x, const UserClass&
> __y) \
> +{
> \
> +    UserClass __tmp (__x);
> \
> +    __tmp op##= __y;
> \
> +    return __tmp;
> \
> +} typedef void rw_unused_typedef
> +
> +USERCLASS_OPERATOR (+);
> +USERCLASS_OPERATOR (-);
> +USERCLASS_OPERATOR (*);
> +USERCLASS_OPERATOR (/);
> +
>  
> /***********************************************************************
> ***/
>  
>  template <class T>
> @@ -332,6 +345,7 @@
>  
>      delete_array (lhs_array, nelems);
>      delete_array (rhs_array, nelems);
> +    delete_array (res_array, nelems);
>  
>      std::free (fname);
>  }
> 
> Farid.
> 


Mime
View raw message