From: Damien Fisher (damien_at_[hidden])
Date: 2002-05-17 10:05:13


On Fri, 17 May 2002, Daniel Frey wrote:

> How about:
>
> template< typename Iterator >
> bool is_distance( Iterator first,
> call_traits< Iterator >::param_type last, // Add
> const?
> int distance ) // Should have a default?
> {
> while( distance >= 0 && first != last ) {
> ++first;
> --distance;
> }
>
> return distance == 0;
> }

Sure, that's basically it. Only things to add:

1.) don't use int for distance, use difference_type from
iterator_traits

2.) specialization for random access iterators

3.) docs, test cases, etc.

4.) it might also be nice to have an advance_n to parallel std::advance.

This isn't a complicated piece of code, so I don't imagine it will take
me long to finish it. However, I'm not going to bother if it isn't
going to get included in boost...can someone clarify whether this needs
a formal review or not? It seems like an overly trivial piece of code
to necessitate one.