
Thorsten Ottosen <nesotto@cs.aau.dk> writes:
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.
Let me clarify. Eric, you seem to be saying that it's inconsistent for the "begin" extension mechanism to be "add a begin to be found via ADL in the same namespace as the Range type" and for the interface for calling those begin to be "boost::begin(x)." There's no inherent inconsistency there. It's possible to implement such a mechanism. However, I don't think that's what Thorsten implemented.
well, the boost:: qualification was added for 1.33 because Dave wanted that to happen.
Please, take responsibility for your own actions. If I didn't convince you that there was a problem with the previously specified requirement and that the change was more consistent with the existing code, you shouldn't have made it.
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.
I'm pretty sure I didn't "reject" it. I probably pointed out that it's inconvenient and difficult for users. I'd appreciate any pointer you have to what I did say. Anyway, how this is done is not up to me alone.
If that is wrong afterall, then the whole area of specifying concepts for free- standing functions is a mess. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
What does that phrase mean? -- Dave Abrahams Boost Consulting www.boost-consulting.com