This method is commented out ostensibly because the current
implementation

bool operator==(ParConstIterator const & iter1, ParConstIterator
const & iter2)
{
     // FIXME: this makes two full copies!
     return DocIterator(iter1) == DocIterator(iter2);
}

made two copies, so was expensive. But what about:

bool operator==(ParConstIterator const & iter1, ParConstIterator
const & iter2)
{
     DocIterator const * dit1 = &iter1;
     DocIterator const * dit2 = &iter2;
     return *dit1 == *dit2;
}

? That should work, yes? It does compile...


PS I'd be interested to hear if any of our C++ gurus knows a reason that
is wrong. It seems kind of obvious, and I haven't found anything about
it online, which worries me. Hey, Andre, you still reading us?

Riki


I'm not a C++ guru, but seems like nothing wrong with this code assuming Dociterator's operator== is right.

It can be further simplified to this:

bool operator==(ParConstIterator const & iter1, ParConstIterator const & iter2)
{
        DocIterator const & dit1 = iter1;
        DocIterator const & dit2 = iter2;
        return dit1 == dit2;
}



Yuriy
--
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to