Boost logo

Boost :

From: Thorsten Ottosen (tottosen_at_[hidden])
Date: 2006-02-02 06:53:39


MB wrote:
> 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.

I'm not sure what you're saying here. Could you explain?

> 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> { };

right, this could be done to provide some form of backwards compatibility.

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

I don't get a lot of hits that uses range_end as a function.

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

well,

- char[N] returns the same as T[N]
- range_iterator is named range_mutable_iterator.

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

I don't think so, but I like to know whom I'm speaking with.

-Thorsten


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