namespace std { template class valarray { public: ... mask_array operator[](const valarray&); ... }; } Класс mask_array поддерживает следующие операции: namespace std { template class mask_array { public: typedef T value_type; void operator= (const T&); void operator= (const valarray&) const; void operator*= (const valarray&) const; void operator/= (const valarray&) const; void operator%= (const valarray&) const; void operator+= (const valarray&) const; void operator-= (const valarray&) const; void operator^= (const valarray&) const; void operator&= (const valarray&) const; void operator|= (const valarray&) const; void operator<<= (const valarray&) const; void operator>>= (const valarray&) const; ~mask_array(); private: mask_array(); mask_array(const mask_array&); mask_array& operator= (const mask_array&); ... }; }