This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.
vector::resize(size_type)
Section: 23.3.11.3 [vector.capacity] Status: Resolved Submitter: Rani Sharoni Opened: 2011-03-29 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 Resolved status.
Discussion:
In C++1x (N3090) there are two version of vector::resize
— 23.3.11.3 [vector.capacity]:
void resize(size_type sz); void resize(size_type sz, const T& c);
The text in 23.3.11.3 [vector.capacity]/12 only mentions "no effects on throw" for the two args version of resize:
Requires: If an exception is thrown other than by the move constructor of a non-
CopyConstructible
T
there are no effects.
This seems like unintentional oversight since resize(size)
is
semantically the same as resize(size, T())
.
Additionally, the C++03 standard only specify single version of resize
with default for the second argument - 23.2.4:
void resize(size_type sz, T c = T());
Therefore not requiring same guarantees for both version of resize is in fact a regression.
[2011-06-12: Daniel comments]
The proposed resolution for issue 2033(i) should solve this issue as well.
[ 2011 Bloomington ]
This issue will be resolved by issue 2033(i), and closed when this issue is applied.
[2012, Kona]
Resolved by adopting the resolution in issue 2033(i) at this meeting.
Proposed resolution: