> -----Original Message----- > From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor > Sent: Friday, July 27, 2007 7:06 PM > To: stdcxx-dev@incubator.apache.org > Subject: Re: [PATCH] 26.valarray.cassign.cpp > > 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?
As I see from night build results, that Intel C++ 10.0 and acc 6.13 also failed to compile: http://people.apache.org/~sebor/stdcxx/results/linux_suse-9.1-amd64-icc- 32b-10.0-15s-559650-log.gz.txt http://people.apache.org/~sebor/stdcxx/results/linux_suse-9.1-amd64-icc- 64b-10.0-8S-559650-log.gz.txt http://people.apache.org/~sebor/stdcxx/results/hpux-11.23-ia64-acc-64b-6 .13-8S-559650-log.gz.txt The test instantiating valarray<UserClass>::operator{+-/*}= (...) operators, but they can't be instantiated because of UserClass has not provided +,-,/,* operations. >From standard: 26.5.2.6 valarray computed assignment [valarray.cassign] valarray<T>& operator*= (const valarray<T>&); valarray<T>& operator/= (const valarray<T>&); valarray<T>& operator%= (const valarray<T>&); valarray<T>& operator+= (const valarray<T>&); valarray<T>& operator-= (const valarray<T>&); valarray<T>& operator^= (const valarray<T>&); valarray<T>& operator&= (const valarray<T>&); valarray<T>& operator|= (const valarray<T>&); valarray<T>& operator<<=(const valarray<T>&); valarray<T>& operator>>=(const valarray<T>&); 1 Each of these operators may only be instantiated for a type T to which the indicated operator can be applied. Each of these operators performs the indicated operation on each of its elements and the corresponding element of the argument array. Farid.