Boost logo

Boost :

From: Greg Colvin (gcolvin_at_[hidden])
Date: 1999-08-18 09:46:50


From: Valentin Bonnard <Bonnard.V_at_[hidden]>
> Greg Colvin wrote:
> >
> > > Greg Colvin wrote:
> > > >
> > > > From: Valentin Bonnard <Bonnard.V_at_[hidden]>
> > > > > A priori, writing a skiping iterator seems trivial:
> > > > >
> > > > > template <typename It, typename Predicate>
> > > > > class SkippingIterator {
> > > > > mutable It pos;
> > > > > Predicate pred;
> > > > >
> > > > > void skip () const
> > > > > { while (pred (*pos)) ++pos; }
> > > > >
> > > > > public:
> > > > > value_type& operator* () const
> > > > > { skip (); return *pos; }
> > > > >
> > > > > void operator++ ()
> > > > > { skip(); ++pos; }
> > > > > };
> > > > >
> > > > > Except that the semantic near the end is ugly (the precondition
> > > > > is that there are non skipped elements before the end).
> > > >
> > > > I think the precondition is just that pred(*last) is false.
> ...
> > > This precondition is ugly (why would the elements
> > > at some position be skippable and not the others ?)
> >
> > So you don't skip off the end of the sequence. There is no
> > element to skip at the end.
>
> ???

Sorry, I was thinking of pred(last), even though we both wrote pred(*last).


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk