1525. Effects of resize(size()) on a vector

Section: 26.3.11.3 [vector.capacity] Status: C++11 Submitter: BSI Opened: 2011-03-24 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [vector.capacity].

View all issues with C++11 status.

Discussion:

Addresses GB-117

26.3.11.3 [vector.capacity] p. 9 (Same as for 26.3.8.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 26.3.11.3 [vector.capacity] p. 9 as follows:

void resize(size_type sz);

9 Effects: If sz <= size(), equivalent to erase(begin() + sz, end());. If size() < sz, appends sz - size() value-initialized elements to the sequence.

10 Requires: T shall be CopyInsertable into *this.