Title
valarray::cshift() effects on empty array
Status
cd1
Section
[valarray.members]
Submitter
Gabriel Dos Reis

Created on 2007-01-10.00:00:00 last changed 171 months ago

Messages

Date: 2010-10-21.18:28:33

Rationale:

We do not believe that there is any real ambiguity about what happens when size() == 0, but we do believe that spelling this out as a C++ expression causes more trouble that it solves. The expression is certainly wrong when n < 0, since the sign of % with negative arguments is implementation defined.

Date: 2010-10-21.18:28:33

Proposed resolution:

Change [valarray.members], paragraph 10:

valarray<T> cshift(int n) const;

This function returns an object of class valarray<T>, of length size(), each of whose elements I is (*this)[(I + n ) % size()]. Thus, if element zero is taken as the leftmost element, a positive value of n shifts the elements circularly left n places. that is a circular shift of *this. If element zero is taken as the leftmost element, a non-negative value of n shifts the elements circularly left n places and a negative value of n shifts the elements circularly right -n places.

Date: 2007-01-10.00:00:00

I would respectfully request an issue be opened with the intention to clarify the wording for size() == 0 for cshift.

History
Date User Action Args
2010-10-21 18:28:33adminsetmessages: + msg3234
2010-10-21 18:28:33adminsetmessages: + msg3233
2007-01-10 00:00:00admincreate