Should an iterator be valid after appending to a Glib::ustring?
- From: Mike Fleetwood <mike fleetwood googlemail com>
- To: gtkmm list <gtkmm-list gnome org>
- Subject: Should an iterator be valid after appending to a Glib::ustring?
- Date: Mon, 6 Mar 2017 18:21:57 +0000
Are iterators into a Glib::ustring still valid after the string is
modified? Specifically appended to or modified at or beyond where the
iterator points. I didn't obviously see this mentioned in the
documentation.
I though it might be valid because the iterator appears to be
implemented using a pointer difference type. However the following
small test program fails with:
**
ERROR:test.cc:28:int main(): assertion failed: (linestart <= cursor)
Aborted
Thanks,
Mike
--8<-- test.cc --8<--
#include <glib.h>
#include <glibmm/ustring.h>
int main()
{
Glib::ustring buf;
Glib::ustring::iterator linestart = buf.begin();
Glib::ustring::iterator cursor = buf.begin();
gunichar uc = 'u';
buf.append(1, uc);
cursor = buf.end();
g_assert(buf.begin() <= linestart);
g_assert(linestart <= cursor);
g_assert(cursor <= buf.end());
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]