valarray& operator*= (const valarray&);
valarray& operator/= (const valarray&);
valarray& operator%= (const valarray&);
valarray& operator+= (const valarray&);
valarray& operator-= (const valarray&);
valarray& operator^= (const valarray&);
valarray& operator&= (const valarray&);
valarray& operator|= (const valarray&);
valarray& operator<<=(const valarray&);
valarray& operator>>=(const valarray&);
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.
The array is then returned by reference.
If the value of an element in the left-hand side of a valarray compound assignment operator depends on the value of another element in that left hand side, the behavior is undefined.
valarray& operator*= (const T&);
valarray& operator/= (const T&);
valarray& operator%= (const T&);
valarray& operator+= (const T&);
valarray& operator-= (const T&);
valarray& operator^= (const T&);
valarray& operator&= (const T&);
valarray& operator|= (const T&);
valarray& operator<<=(const T&);
valarray& operator>>=(const T&);
Each of these operators may only be instantiated for a type T to which the indicated operator can be applied.
Each of these operators applies the indicated operation to each element of the array and the non-array argument.
The array is then returned by reference.
The appearance of an array on the left-hand side of a compound assignment does not invalidate references or pointers to the elements of the array.