diff options
author | Ulrich Drepper <drepper@gcc.gnu.org> | 1998-07-02 15:57:12 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@gcc.gnu.org> | 1998-07-02 15:57:12 +0000 |
commit | 5a1a4615e4820dbb131e773348cfbb81b87c06dc (patch) | |
tree | 21774c4815e51b54344bf44903b6f857d20d0dbd /libstdc++/std | |
parent | 6feacd095463d1215e8797639cabad6058f49e5c (diff) | |
download | gcc-5a1a4615e4820dbb131e773348cfbb81b87c06dc.zip gcc-5a1a4615e4820dbb131e773348cfbb81b87c06dc.tar.gz gcc-5a1a4615e4820dbb131e773348cfbb81b87c06dc.tar.bz2 |
(class basic_string): Return correct iterators in erase member functions.
From-SVN: r20906
Diffstat (limited to 'libstdc++/std')
-rw-r--r-- | libstdc++/std/bastring.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libstdc++/std/bastring.h b/libstdc++/std/bastring.h index 8b009a4..5e334e6 100644 --- a/libstdc++/std/bastring.h +++ b/libstdc++/std/bastring.h @@ -227,9 +227,13 @@ public: basic_string& erase (size_type pos = 0, size_type n = npos) { return replace (pos, n, (size_type)0, (charT)0); } iterator erase(iterator p) - { replace (p-ibegin (), 1, (size_type)0, (charT)0); selfish (); return p; } + { size_type __o = p - begin(); + replace (__o, 1, (size_type)0, (charT)0); selfish (); + return ibegin() + __o; } iterator erase(iterator f, iterator l) - { replace (f-ibegin (), l-f, (size_type)0, (charT)0);selfish ();return f; } + { size_type __o = f - ibegin(); + replace (__o, l-f, (size_type)0, (charT)0);selfish (); + return ibegin() + __o; } basic_string& replace (size_type pos1, size_type n1, const basic_string& str, size_type pos2 = 0, size_type n2 = npos); |