On 18 March 2016 at 18:11, Jonathan Wakely <gt...@kayari.org> wrote:
> On 18 March 2016 at 17:57, jeremy.harmon wrote:
>> Hello,
>>
>> When I try to use std::prev on a ustring const_iterator nothing
>> happens, operator-- works fine.
>>
>> Glib::ustring str = "test";
>> Glib::ustring::iterator iter = str.begin();
>>
>> std::advance(iter);
>> printf("%c\n", *iter);
>>
>> std::prev(iter);
>> printf("%c\n", *iter);
>>
>> iter--;
>> printf("%c\n", *iter);
>>
>> Output is
>> e
>> e
>> t
>>
>> Any ideas why it doesn't work?
>
> Because unlike std::advance, std::prev doesn't modify its argument, it
> returns the new iterator instead.
>
> http://en.cppreference.com/w/cpp/iterator/prev

So, for completeness, you probably want to do this instead:

iter = std::prev(iter);

or std::advance(iter, -1)
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to