https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83982

--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Thu Jun 14 09:26:51 2018
New Revision: 261585

URL: https://gcc.gnu.org/viewcvs?rev=261585&root=gcc&view=rev
Log:
PR libstdc++/83982 fix exception-safety guarantee of std::vector::resize

Construct new elements before moving existing ones, so that if a default
constructor throws, the existing elements are not left in a moved-from
state.

2018-06-14  Daniel Trebbien <dtrebb...@gmail.com>
            Jonathan Wakely  <jwak...@redhat.com>

        PR libstdc++/83982
        * include/bits/vector.tcc (vector::_M_default_append(size_type)):
        Default-construct new elements before moving existing ones.
        * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
        New.

Added:
   
trunk/libstdc++-v3/testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/vector.tcc

Reply via email to