
Thorsten Ottosen wrote:
Eric Niebler <eric <at> boost-consulting.com> writes:
boost_range_end(). From the CVS history, that is what was implemented. But that is not what was documented, and it's not what your concept specifications require.
I have no recollection of this.
To give you all a proper answer, I will have to reread the entire discussion. I don't intend to use my weekend for that, but I'll return monday or tuesday with a proper answer.
OK, but if we want the Range concepts fixed for 1.33.1 (we do, right?) then we have a bit of time pressure.
It's also not mentioned anywhere in the proposal you made to the C++ standardization committee, AFAICT. Customization points are *crucially* important to the Range concepts,
right.
and we spent a long time discussing it. You have ignored that. Boost.Range is a mess, the concepts are wrong, and so is your proposal.
Thanks.
I seem to have let my frustration get the better of me. Sorry for the strong wording.
The proposal uses the same extension mechanism as the one in boost.
Libraries must call the functions unqualified. I see no problem with that.
Once you reread the thread, you'll recall the problems with that. The whole discussion started because gcc's bizarre interpretation of the name look-up rules meant that unqualified calls to "end" led to ambiguities -- it was colliding with mpl::end.
My recollection is that having boost::foo() do ADL was *firmly* rejected, and so that is why I don't see the boost_range_end() being that important.
Quite the opposite, actually. It was decided that boost::end() *should* make a call to a hook that is found by ADL.
The docs might be wrong right now, but that is of minor importance.
I respectfully disagree about the importance of improperly specified concepts. -- Eric Niebler Boost Consulting www.boost-consulting.com