From: MB (mb2act_at_[hidden])
Date: 2006-02-02 00:08:54


Thorsten Ottosen wrote:
> MB wrote:
>
> > Thorsten Ottosen wrote:
>
>
> >> no, it has been renamed to range_iterator and the former
> range_iterator is now called mutable_iterator.
> >
> >
> >
> > But, range_iterator has already been specialized by
> > range implementators.
>
>
> right, that is why it is a breaking update.

It is possible to hook 'range_iterator' from user specializations?

   template< class T >
   struct range_iterator<const T> : range_const_iterator<T> { };

Fortunately, Boost.Range documentation doesn't say
'range_iterator< const Foo::Pair<T> >' must be specialized.
User 'range_iterator' specializations still work.

 From the point of client view,
I have never called 'range_iterator',
while I called 'range_result_iterator' 159 times.

As for 'range_result_iterator', there is no reason why it should be removed.
If it were removed, I would add just:

   // legacy name of range_iterator
   template< class Range >
   struct range_result_iterator : range_iterator<Range> { };

As for 'boost_range_begin', the change is rather dangerous.
Please do google "range_end".

Thus, no problem breaks except for 'char*', doesn't it?

> BTW: please use your real name when posting
Formal rule?
If so, this should be the final post...

Regards,
MB