Alfredo Braunstein <[EMAIL PROTECTED]> writes:
| +bool PosIterator::operator!=(PosIterator const & a) const
| +{
| + return !operator==(a);
| +}
| +
| +
| +bool PosIterator::operator==(PosIterator const & a) const
| +{
| +
| + PosIteratorItem const & pa = a.stack_.top();
| + PosIteratorItem const & p = stack_.top();
| +
| + return (pa.pl == p.pl && pa.pit == p.pit &&
| + (p.pit == p.pl->end() || pa.pos == p.pos));
| +}
Sorry for not noticing this ealier, but I think (if possible) they
should be free functions and not class functions.
Then they would look like this:
bool operator==(PosIterator const & lhs,
PosIterator const & rhs)
{
PosIteratorItem const & li = lhs.stack_.top();
PosIteratorItem const & ri = rhs.stack_.top();
return li.pl == ri.pl && li.pit == ri.pit &&
(li.pit == li.pl->end() || li.pos == ri.pos);
}
bool operator!=(PosIterator const & lhs,
PosIterator const & rhs)
{
return !(lhs == rhs);
}
Make them friends of the PosIterator class if you have to.
(Only operator== of course...)
And yes, I found this better.
--
Lgb