Chris Vine wrote:
On Mon, 27 Apr 2009 10:30:14 +0200
Krzesimir Nowak <[email protected]> wrote:
On Sat, 2009-04-25 at 09:51 +0200, François Legendre wrote:
#include <iostream>
#include <glibmm.h>
int main() {
Glib::ustring str("Hello") ;
for ( Glib::ustring::iterator it = str.begin() ; it !=
str.end() ; ++ it )
;
for ( Glib::ustring::const_iterator it = str.begin() ; it !=
str.end() ; ++ it )
;
return 0 ;
}
That doesn't work, because your str is not const, so it executes this
method:
iterator Glib::ustring::end();
instead of:
const_iterator Glib::ustring::end() const;
change in line 9:
for ( Glib::ustring::const_iterator it = str.begin() ; it !=
static_cast<Glib::ustring::const_iterator>(str.end()) ; ++ it )
This looks like a bug. The STL provides a second version of
operator==() for its iterators which is templated on the types of both
arguments, to allow a const and non-const interator to be compared -
specifically to allow the form used by the OP, which is very common.
If this is actually a bug (I haven't really looked into it at all yet), it would be nice
to have it filed in bugzilla so we remember to do something about it.
--
jonner
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list