Standard library header - cppreference.com (original) (raw)

This header is part of the numeric library.

[edit] Synopsis

#include   namespace std { template class valarray; // An array of type T class slice; // a BLAS-like slice out of an array template class slice_array; class gslice; // a generalized slice out of an array template class gslice_array; template class mask_array; // a masked array template class indirect_array; // an indirected array   template void swap(valarray&, valarray&) noexcept;   template valarray operator* (const valarray&, const valarray&); template valarray operator* (const valarray&, const typename valarray::value_type&); template valarray operator* (const typename valarray::value_type&, const valarray&);   template valarray operator/ (const valarray&, const valarray&); template valarray operator/ (const valarray&, const typename valarray::value_type&); template valarray operator/ (const typename valarray::value_type&, const valarray&);   template valarray operator% (const valarray&, const valarray&); template valarray operator% (const valarray&, const typename valarray::value_type&); template valarray operator% (const typename valarray::value_type&, const valarray&);   template valarray operator+ (const valarray&, const valarray&); template valarray operator+ (const valarray&, const typename valarray::value_type&); template valarray operator+ (const typename valarray::value_type&, const valarray&);   template valarray operator- (const valarray&, const valarray&); template valarray operator- (const valarray&, const typename valarray::value_type&); template valarray operator- (const typename valarray::value_type&, const valarray&);   template valarray operator^ (const valarray&, const valarray&); template valarray operator^ (const valarray&, const typename valarray::value_type&); template valarray operator^ (const typename valarray::value_type&, const valarray&);   template valarray operator& (const valarray&, const valarray&); template valarray operator& (const valarray&, const typename valarray::value_type&); template valarray operator& (const typename valarray::value_type&, const valarray&);   template valarray operator| (const valarray&, const valarray&); template valarray operator| (const valarray&, const typename valarray::value_type&); template valarray operator| (const typename valarray::value_type&, const valarray&);   template valarray operator<<(const valarray&, const valarray&); template valarray operator<<(const valarray&, const typename valarray::value_type&); template valarray operator<<(const typename valarray::value_type&, const valarray&);   template valarray operator>>(const valarray&, const valarray&); template valarray operator>>(const valarray&, const typename valarray::value_type&); template valarray operator>>(const typename valarray::value_type&, const valarray&);   template valarray operator&&(const valarray&, const valarray&); template valarray operator&&(const valarray&, const typename valarray::value_type&); template valarray operator&&(const typename valarray::value_type&, const valarray&);   template valarray operator||(const valarray&, const valarray&); template valarray operator||(const valarray&, const typename valarray::value_type&); template valarray operator||(const typename valarray::value_type&, const valarray&);   template valarray operator==(const valarray&, const valarray&); template valarray operator==(const valarray&, const typename valarray::value_type&); template valarray operator==(const typename valarray::value_type&, const valarray&); template valarray operator!=(const valarray&, const valarray&); template valarray operator!=(const valarray&, const typename valarray::value_type&); template valarray operator!=(const typename valarray::value_type&, const valarray&);   template valarray operator< (const valarray&, const valarray&); template valarray operator< (const valarray&, const typename valarray::value_type&); template valarray operator< (const typename valarray::value_type&, const valarray&); template valarray operator> (const valarray&, const valarray&); template valarray operator> (const valarray&, const typename valarray::value_type&); template valarray operator> (const typename valarray::value_type&, const valarray&); template valarray operator<=(const valarray&, const valarray&); template valarray operator<=(const valarray&, const typename valarray::value_type&); template valarray operator<=(const typename valarray::value_type&, const valarray&); template valarray operator>=(const valarray&, const valarray&); template valarray operator>=(const valarray&, const typename valarray::value_type&); template valarray operator>=(const typename valarray::value_type&, const valarray&);   template valarray abs (const valarray&); template valarray acos (const valarray&); template valarray asin (const valarray&); template valarray atan (const valarray&);   template valarray atan2(const valarray&, const valarray&); template valarray atan2(const valarray&, const typename valarray::value_type&); template valarray atan2(const typename valarray::value_type&, const valarray&);   template valarray cos (const valarray&); template valarray cosh (const valarray&); template valarray exp (const valarray&); template valarray log (const valarray&); template valarray log10(const valarray&);   template valarray pow(const valarray&, const valarray&); template valarray pow(const valarray&, const typename valarray::value_type&); template valarray pow(const typename valarray::value_type&, const valarray&);   template valarray sin (const valarray&); template valarray sinh (const valarray&); template valarray sqrt (const valarray&); template valarray tan (const valarray&); template valarray tanh (const valarray&);   template /* unspecified1 / begin(valarray& v); template / unspecified2 / begin(const valarray& v); template / unspecified1 / end(valarray& v); template / unspecified2 */ end(const valarray& v); }

[edit] Class template std::valarray

namespace std { template class valarray { public: using value_type = T;   // construct/destroy valarray(); explicit valarray(size_t); valarray(const T&, size_t); valarray(const T*, size_t); valarray(const valarray&); valarray(valarray&&) noexcept; valarray(const slice_array&); valarray(const gslice_array&); valarray(const mask_array&); valarray(const indirect_array&); valarray(initializer_list); valarray();   // assignment valarray& operator=(const valarray&); valarray& operator=(valarray&&) noexcept; valarray& operator=(initializer_list); valarray& operator=(const T&); valarray& operator=(const slice_array&); valarray& operator=(const gslice_array&); valarray& operator=(const mask_array&); valarray& operator=(const indirect_array&);   // element access const T& operator const; T& operator;   // subset operations valarray operator const; slice_array operator; valarray operator[](const gslice&) const; gslice_array operator[](const gslice&); valarray operator[](const valarray&) const; mask_array operator[](const valarray&); valarray operator[](const valarray&) const; indirect_array operator[](const valarray&);   // unary operators valarray operator+() const; valarray operator-() const; valarray operator() const; valarray operator!() const;   // compound assignment 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&);   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&);   // member functions void swap(valarray&) noexcept;   size_t size() const;   T sum() const; T min() const; T max() const;   valarray shift (int) const; valarray cshift(int) const; valarray apply(T func(T)) const; valarray apply(T func(const T&)) const; void resize(size_t sz, T c = T()); };   template<class T, size_t cnt> valarray(const T(&)[cnt], size_t) -> valarray; }

[edit] Class std::slice

namespace std { class slice { public: slice(); slice(size_t, size_t, size_t);   size_t start() const; size_t size() const; size_t stride() const;   friend bool operator==(const slice& x, const slice& y); }; }

[edit] Class template std::slice_array

namespace std { template class slice_array { public: using value_type = 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;   slice_array(const slice_array&); ~slice_array(); const slice_array& operator=(const slice_array&) const; void operator=(const T&) const;   slice_array() = delete; // as implied by declaring copy constructor above }; }

[edit] Class std::gslice

namespace std { class gslice { public: gslice(); gslice(size_t s, const valarray& l, const valarray& d);   size_t start() const; valarray size() const; valarray stride() const; }; }

[edit] Class template std::gslice_array

namespace std { template class gslice_array { public: using value_type = 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;   gslice_array(const gslice_array&); ~gslice_array(); const gslice_array& operator=(const gslice_array&) const; void operator=(const T&) const;   gslice_array() = delete; // as implied by declaring copy constructor above }; }

[edit] Class template std::mask_array

namespace std { template class mask_array { public: using value_type = 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(const mask_array&); ~mask_array(); const mask_array& operator=(const mask_array&) const; void operator=(const T&) const;   mask_array() = delete; // as implied by declaring copy constructor above }; }

[edit] Class template std::indirect_array

namespace std { template class indirect_array { public: using value_type = 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;   indirect_array(const indirect_array&); ~indirect_array(); const indirect_array& operator=(const indirect_array&) const; void operator=(const T&) const;   indirect_array() = delete; // as implied by declaring copy constructor above }; }

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 125 C++98 the return type of valarray::operator!()was valarray<T> in the synopsis corrected to valarray<bool>