OSDN Git Service

(class basic_string): Return correct iterators in erase member functions.
authordrepper <drepper@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Jul 1998 15:57:12 +0000 (15:57 +0000)
committerdrepper <drepper@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Jul 1998 15:57:12 +0000 (15:57 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20906 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++/std/bastring.h

index 8b009a4..5e334e6 100644 (file)
@@ -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);