184.108.40.206 p1 says
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. [for operators *=, /=, %=, +=, -=, ^=, &=, |=, <<= and >>=]
The current implementation of the valarray member operators violate these requirements. Internally they use the transform algorithm with one of the function adapters [i.e. multiplies, divides]. So valarray<T>::operator+=() will use T::operator+() and T::operator=() when it should be using T::operator+=(). As a direct result of this, the 26.valarray.cassign test fails to compile on all platforms.