resize(size())
on a vector
Section: 23.3.11.3 [vector.capacity] Status: C++11 Submitter: BSI Opened: 2011-03-24 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [vector.capacity].
View all other issues in [vector.capacity].
View all issues with C++11 status.
Discussion:
Addresses GB-117
23.3.11.3 [vector.capacity] p. 9 (Same as for 23.3.5.3 [deque.capacity] p. 1 i.e.
deque::resize
). There is no mention of what happens if sz==size()
. While
it obviously does nothing I feel a standard needs to say this explicitely.
Suggested resolution:
Append "If sz == size()
, does nothing" to the effects.
[2011-03-24 Daniel comments]
During the edit of this issue some non-conflicting overlap with 2033 became obvious.
CopyInsertable
should be MoveInsertable
and there is missing the DefaultConstructible
requirements, but this should be fixed by 2033.
Proposed resolution:
Change 23.3.11.3 [vector.capacity] p. 9 as follows:
void resize(size_type sz);9 Effects: If
10 Requires:sz <= size()
, equivalent toerase(begin() + sz, end());
. Ifsize() < sz
, appendssz - size()
value-initialized elements to the sequence.T
shall beCopyInsertable
into*this
.