|
Boost : |
From: Eric Niebler (eric_at_[hidden])
Date: 2005-09-02 12:57:54
Thorsten Ottosen wrote:
> Eric Niebler <eric <at> boost-consulting.com> writes:
>
>>and I think you forgot the long discussion we
>>had on this topic with Dave A. and Peter D. on the boost.users list.
>>(Thread starts here: http://lists.boost.org/boost-users/2005/03/10242.php)
>>
>>See http://lists.boost.org/boost-users/2005/03/10391.php where you wrote:
>>
>>"So this changes the extension protocol to overloading adl_end() from
>>overloading end()."
>
>
> I recall some of the discussion, but I haven't read up on it.
> The adl_end() stuff never got further than the discussion.
>
Thorsten. You *participated* in the discussion. You cannot plead
ignorance. It was this message on 3/8/2005 where Dave A. recommended you
use the name boost_range_end():
http://lists.boost.org/boost-users/2005/03/10402.php.
It was in this diff from 3/24/2005 that you applied his recommended
change to range/end.hpp: http://tinyurl.com/7tzco.
Do you still want to argue that this stuff "never got further than the
discussion"?
>
>>You also seem to be forgetting the Range concepts that you yourself
>>documented here: http://boost.org/libs/range/doc/range.html. In the
>>concepts, the calls to begin()/end() are REQUIRED to be qualified.
>
>
> well, the boost:: qualification was added for 1.33 because Dave wanted that to
> happen. I belive the problem was that without boost:: qualification, standard
> containers were not conforming to a range concept. Somebody suggested the
> requirement
>
> using boost:begin;
> begin(r);
>
> instead. Dave rejected it.
>
> If that is wrong afterall, then the whole area of specifying concepts for free-
> standing functions is a mess.
>
No. What Dave A. and Peter D. were arguing for was that boost::end() be
implemented in terms of a non-qualified call to an ADL hook called
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.
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, 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.
So?
-- Eric Niebler Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk