
Thorsten Ottosen wrote:
Eric Niebler skrev:
Thorsten Ottosen wrote:
Beman Dawes skrev:
Looks like the range fixes broke foreach. See http://mysite.verizon.net/beman/bgd-win32-trunk-results.html This is my fault, sinc eI changed the names of the ADL hooks back to 1.34 names:
namespace boost { char * range_begin(mine::dummy&) {return 0;} char const * range_begin(mine::dummy const&) {return 0;} char * range_end(mine::dummy&) {return 0;} char const * range_end(mine::dummy const&) {return 0;} }
should be
namespace boost { char * boost_range_begin(mine::dummy&) {return 0;} char const * boost_range_begin(mine::dummy const&) {return 0;} char * boost_range_end(mine::dummy&) {return 0;} char const * boost_range_end(mine::dummy const&) {return 0;} }
The old names have been in use for so long that I don't see the point in changing them anymore.
I'm dumbfounded. Thorsten, how can you make an API-breaking change to a core library like Range at a time like this, and not tell anybody?
I could have announced this better, I apologize for that. What time is this?
We're stabilizing for 1.35.
My code, docs and tests would all need to change because of this.
!!!!!
We agreed long ago that range_begin() was the name of the customization point, because the Range concept is larger than Boost. Has that changed?
And that is the problem: do you want to break the few boost libs in a development trunk, or break all clients out there? The names where settled for maybe two years ago.
Have you just changed the names of the adl hooks? There are lots of other breaking changes, like the changed meaning of range_iterator<>, the deprecation of range_result_iterator<> and the addition of range_mutable_iterator<>. And the behavior of range_end(char (&)[N]), too. Are you going to roll all of that back? If not, then you haven't really got a leg to stand on -- you're breaking clients anyway. This change is a mistake. Please, back it out. -- Eric Niebler Boost Consulting www.boost-consulting.com