re PR libstdc++/24617 (vector vs __erase_at_end)
authorPaolo Carlini <pcarlini@suse.de>
Thu, 8 Dec 2005 11:32:37 +0000 (11:32 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Thu, 8 Dec 2005 11:32:37 +0000 (11:32 +0000)
commitbc9053abce09400d12ced72db73bff5dbbd05007
tree1fe2e6170d3fe3e2a5153f90964e9890a3320fd2
parentb2a93c0a5a9119b67977cac08dd6c08571d778b0
re PR libstdc++/24617 (vector vs __erase_at_end)

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.

From-SVN: r108227
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/include/bits/vector.tcc
libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/types/1.cc [new file with mode: 0644]