This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD Editorial status.
Section: 28.6.2.2 [valarray.cons] Status: NAD Editorial Submitter: Alberto Ganesh Barbati Opened: 2008-07-20 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [valarray.cons].
View all issues with NAD Editorial status.
Discussion:
From 28.6.2.2 [valarray.cons], paragraph 2:
explicit valarray(size_t);The array created by this constructor has a length equal to the value of the argument. The elements of the array are constructed using the default constructor for the instantiating type T.
The problem is that the most obvious Ts for valarray are float and double, they don't have a default constructor. I guess the intent is to value-initialize the elements, so I suggest replacing:
The elements of the array are constructed using the default constructor for the instantiating type T.
with
The elements of the array are value-initialized.
There is another reference to the default constructor of T in the non-normative note in paragraph 9. That reference should also be replaced. (The normative wording in paragraph 8 refers to T() and so it doesn't need changes).
[ Batavia (2009-05): ]
We agree with the proposed resolution. Move to NAD Editorial.
Proposed resolution:
Change 28.6.2.2 [valarray.cons], paragraph 2:
explicit valarray(size_t);The array created by this constructor has a length equal to the value of the argument. The elements of the array are
constructed using the default constructor for the instantiating type Tvalue-initialized (9.4 [dcl.init]).
Change 28.6.2.8 [valarray.members], paragraph 9:
[Example: If the argument has the value -2, the first two elements of the result will be
constructed using the default constructorvalue-initialized (9.4 [dcl.init]); the third element of the result will be assigned the value of the first element of the argument; etc. -- end example]