Non-member logical operators are provided to allow for variations of order of the operation.
template<class T> valarray<bool> operator== (const valarray&, const T&); template<class T> valarray<bool> operator== (const T&, const valarray&); template<class T> valarray<bool> operator!= (const valarray&, const T&); template<class T> valarray<bool> operator!= (const T&, const valarray&); template<class T> valarray<bool> operator< (const valarray&, const T&); template<class T> valarray<bool> operator< (const T&, const valarray&); template<class T> valarray<bool> operator> (const valarray&, const T&); template<class T> valarray<bool> operator> (const T&, const valarray&); template<class T> valarray<bool> operator<= (const valarray&, const T&); template<class T> valarray<bool> operator<= (const T&, const valarray&); template<class T> valarray<bool> operator>= (const valarray&, const T&); template<class T> valarray<bool> operator>= (const T&, const valarray&); template<class T> valarray<bool> operator&& (const valarray<T>&, const T&); template<class T> valarray<bool> operator&& (const T&, const valarray<T>&); template<class T> valarray<bool> operator|| (const valarray<T>&, const T&); template<class T> valarray<bool> operator|| (const T&, const valarray<T>&);
The result of these operations is a bool array whose length is equal to the length of the array argument. Each element of the returned array is the result of a logical match.