See More

/* Copyright (C) 2015 Povilas Kanapickas This file is part of cppreference-doc This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. */ #ifndef CPPREFERENCE_VALARRAY_H #define CPPREFERENCE_VALARRAY_H #if CPPREFERENCE_STDVER >= 2011 #include // for std::initializer_list #endif namespace std { template class valarray { public: typedef T value_type; valarray(); explicit valarray(std::size_t count); valarray(const T& val, std::size_t count); valarray(const T* vals, std::size_t count); valarray(const valarray& other); #if CPPREFERENCE_STDVER>= 2011 valarray(valarray&& other); #endif valarray(const std::slice_array& array); valarray(const std::gslice_array& array); valarray(const std::mask_array& array); valarray(const std::indirect_array& array); #if CPPREFERENCE_STDVER>= 2011 valarray(std::initializer_list ilist); #endif ~valarray(); valarray& operator=(const valarray& other); #if CPPREFERENCE_STDVER>= 2011 valarray& operator=(valarray&& other); #endif valarray& operator=(const T& val); valarray& operator=(const std::slice_array& other); valarray& operator=(const std::gslice_array& other); valarray& operator=(const std::mask_array& other); valarray& operator=(const std::indirect_array& other); #if CPPREFERENCE_STDVER>= 2011 valarray& operator=(std::initializer_list il); #endif T operator[](std::size_t pos) const; const T& operator[](std::size_t pos) const; T& operator[](std::size_t pos); std::valarray operator[](std::slice slicearr) const; std::slice_array operator[](std::slice slicearr); std::valarray operator[](const std::gslice& gslicearr) const; std::gslice_array operator[](const std::gslice& gslicearr); std::valarray operator[](const valarray& boolarr) const; std::mask_array operator[](const valarray& boolarr); std::valarray operator[](const valarray<:size_t>& indarr) const; std::indirect_array operator[](const valarray<:size_t>& indarr); valarray operator+() const; valarray operator-() const; valarray operator~() const; valarray operator!() const; valarray operator+=(const valarray& v); valarray operator-=(const valarray& v); valarray operator*=(const valarray& v); valarray operator/=(const valarray& v); valarray operator%=(const valarray& v); valarray operator&=(const valarray& v); valarray operator|=(const valarray& v); valarray operator^=(const valarray& v); valarray operator<<=(const valarray& v); valarray operator>>=(const valarray& v); valarray operator+=(const T& val); valarray operator-=(const T& val); valarray operator*=(const T& val); valarray operator/=(const T& val); valarray operator%=(const T& val); valarray operator&=(const T& val); valarray operator|=(const T& val); valarray operator^=(const T& val); valarray operator<<=(const T& val); valarray operator>>=(const T& val); void swap(valarray& other); std::size_t size() const; void resize(std::size_t count, T value = T()); T sum() const; T min() const; T max() const; valarray shift(int count) const; valarray cshift(int count) const; valarray apply(T func(T)) const; valarray apply(T func(const T&)) const; }; template void swap(valarray& lhs, valarray& rhs); struct __unspecified; #if CPPREFERENCE_STDVER>= 2011 template __unspecified begin(valarray& v); template __unspecified begin(const valarray& v); template __unspecified end(valarray& v); template __unspecified end(const valarray& v); #endif template std::valarray operator+ (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator- (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator* (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator/ (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator% (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator& (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator| (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator^ (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator<<(const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator>> (const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator&&(const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator||(const std::valarray& lhs, const std::valarray& rhs); template std::valarray operator+ (const T& val, const std::valarray& rhs); template std::valarray operator- (const T& val, const std::valarray& rhs); template std::valarray operator* (const T& val, const std::valarray& rhs); template std::valarray operator/ (const T& val, const std::valarray& rhs); template std::valarray operator% (const T& val, const std::valarray& rhs); template std::valarray operator& (const T& val, const std::valarray& rhs); template std::valarray operator| (const T& val, const std::valarray& rhs); template std::valarray operator^ (const T& val, const std::valarray& rhs); template std::valarray operator<<(const T& val, const std::valarray& rhs); template std::valarray operator>> (const T& val, const std::valarray& rhs); template std::valarray operator&&(const T& val, const std::valarray& rhs); template std::valarray operator||(const T& val, const std::valarray& rhs); template std::valarray operator+ (const std::valarray& lhs, const T& rhs); template std::valarray operator- (const std::valarray& lhs, const T& val); template std::valarray operator* (const std::valarray& lhs, const T& val); template std::valarray operator/ (const std::valarray& lhs, const T& val); template std::valarray operator% (const std::valarray& lhs, const T& val); template std::valarray operator& (const std::valarray& lhs, const T& val); template std::valarray operator| (const std::valarray& lhs, const T& val); template std::valarray operator^ (const std::valarray& lhs, const T& val); template std::valarray operator<<(const std::valarray& lhs, const T& val); template std::valarray operator>> (const std::valarray& lhs, const T& val); template std::valarray operator&&(const std::valarray& lhs, const T& val); template std::valarray operator||(const std::valarray& lhs, const T& val); template valarray operator==(const valarray& lhs, const valarray& rhs); template valarray operator!=(const valarray& lhs, const valarray& rhs); template valarray operator<(const valarray& lhs, const valarray& rhs); template valarray operator<=(const valarray& lhs, const valarray& rhs); template valarray operator>(const valarray& lhs, const valarray& rhs); template valarray operator>=(const valarray& lhs, const valarray& rhs); template valarray operator==(const T& lhsv, const valarray& rhs); template valarray operator!=(const T& lhsv, const valarray& rhs); template valarray operator<(const T& lhsv, const valarray& rhs); template valarray operator<=(const T& lhsv, const valarray& rhs); template valarray operator>(const T& lhsv, const valarray& rhs); template valarray operator>=(const T& lhsv, const valarray& rhs); template valarray operator==(const valarray& lhs, const T& rhsv); template valarray operator!=(const valarray& lhs, const T& rhsv); template valarray operator<(const valarray& lhs, const T& rhsv); template valarray operator<=(const valarray& lhs, const T& rhsv); template valarray operator>(const valarray