
Thomas Witt <witt@acm.org> writes:
instead of the irritating void foo() { using namespace boost; begin(r); }
For the record I don't think it's irritating at all. It very clearly states what is going on. I can see it being cumbersome though.
Cumbersomeness is irritating ;-)
BTW shouldn't it be
using boost::begin; begin(r);
Yes it should.
we simply now say void foo() { boost::begin(r); } and get full ADL lookup. This changes the extension protocol to overiding these three functions:
To me the key difference here is not the way hooks a provided, but that currently the user chooses to take advantage of ADL, while with the new scheme the library makes the choice for the user. I am unconvinced that that's actually better.
The user can always call the hook unqualified. That's _going_ to be a public part of the library's interface. -- Dave Abrahams Boost Consulting www.boost-consulting.com