|
Boost : |
From: Valentin Bonnard (Bonnard.V_at_[hidden])
Date: 1999-08-17 12:09:40
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.
Saying pred(*x) is false is saying that x is non skipped.
We are saying the same thing.
This precondition is ugly (why would the elements
at some position be skippable and not the others ?)
-- Valentin Bonnard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk