[Bug libstdc++/24617] vector vs __erase_at_end

paolo at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Thu Dec 8 11:32:00 GMT 2005



------- Comment #3 from paolo at gcc dot gnu dot org  2005-12-08 11:32 -------
Subject: Bug 24617

Author: paolo
Date: Thu Dec  8 11:32:37 2005
New Revision: 108227

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108227
Log:
2005-12-08  Paolo Carlini  <pcarlini@suse.de>

        * include/bits/stl_vector.h (vector<>::size, resize, capacity,
        operator[]): Avoid troubles with ADL, user defined operators
        and __normal_iterator.
        (_M_erase_at_end): Fix to take a pointer.
        (clear): Adjust call.
        * include/bits/vector.tcc (vector<>::insert(iterator, const
        value_type&), erase(iterator, iterator), operator=(const
        vector<>&), _M_assign_aux(input_iterator_tag), _M_insert_aux,
        _M_fill_insert, _M_range_insert): Likewise.
        (_M_fill_assign, _M_assign_aux(forward_iterator_tag)): Adjust
        _M_erase_at_end call.
        * testsuite/23_containers/vector/types/1.cc: New.

2005-12-08  Paolo Carlini  <pcarlini@suse.de>

        PR libstdc++/24617
        * include/bits/stl_vector.h (vector<>::_M_erase_at_end): New.
        (vector<>::clear, resize): Use it.
        * include/bits/vector.tcc (vector<>::erase(iterator, iterator),
        _M_fill_assign, _M_assign_aux): Likewise.

        * testsuite/23_containers/vector/modifiers/erase/1.cc: New.

Added:
    trunk/libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/
    trunk/libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/1.cc
    trunk/libstdc++-v3/testsuite/23_containers/vector/types/1.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/stl_vector.h
    trunk/libstdc++-v3/include/bits/vector.tcc


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24617



More information about the Gcc-bugs mailing list