29 Numerics library [numerics]

29.7 Numeric arrays [numarray]

29.7.2 Class template valarray [template.valarray]

29.7.2.4 valarray element access [valarray.access]

const T& operator[](size_t n) const; T& operator[](size_t n);

Requires: n < size().

Returns: Ссылка на соответствующий элемент массива. [ Note: Выражение (a[i] = q, a[i]) == q оценивается true как любое непостоянное valarray<T> a, любое T qили size_­t i такое, что значение i меньше длины a. ]end note

Remarks: Выражение &a[i+j] == &a[i] + j оценивается true для всех size_­t i и size_­t j таких, что i+j < a.size().

Выражение &a[i] != &b[j] принимает значение true для любых двух массивов ,a а b и для любого size_­t i и size_­t j таким образом, что i < a.size() и j < b.size(). [ Note: Это свойство указывает на отсутствие псевдонимов и может быть использовано для оптимизации компиляторов. Компиляторы могут использовать встраивание, распространение констант, слияние циклов, отслеживание указателей, полученных из operator new, и другие методы для генерации эффективных valarrays. ]end note

Ссылка, возвращаемая оператором индекса для массива, должна быть действительной до тех пор, пока для этого массива не будетresize(size_­t, T) вызвана функция-член или пока не закончится время жизни этого массива, в зависимости от того, что произойдет раньше.