
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