[Libreoffice] Question about iterator management in sw/source/core/fields/cellfml.cxx
Lubos Lunak
l.lunak at suse.cz
Thu Feb 2 05:06:28 PST 2012
On Thursday 02 of February 2012, Stephan Bergmann wrote:
> On 02/02/2012 11:26 AM, Lubos Lunak wrote:
> > I agree with all the points, but in Julien's defense, I remember
> > exactly this same approach was pushed in recently as a fix to the same
> > issue elsewhere.
>
> Might well be, I probably didn't notice. And this is in no way meant to
> criticize Julien -- but I assume that's clear, anyway.
>
> > Perhaps we should agree on what the recommended way is? I personally
> > think
>
> Don't think its worth to go any more formal here. I occasionally notice
> things and give comments, trying to give rationales as well. But in the
> end, all those kinds of code are good and fine, anyway.
I definitely didn't mean to get formal here, I simply meant a description of
how to actually handle this, as it turns up now and then, and STL doesn't
make this trivial.
> > the simplest and most elegant solution is to go with 'it =
> > container.erase( it );" and move the "++it" out of for()'s parentheses to
> > an else block of the
>
> it = erase(it) is unfortunately only C++11
Oh, it's a map. Bugger. Ok, especially in that case it might be useful to
point out that the solution is to use a temporary iterator for removal and
advance the real one first. I can't be the only one who'd need a while to
figure it out otherwise.
--
Lubos Lunak
l.lunak at suse.cz
More information about the LibreOffice
mailing list