|
Boost : |
From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2005-04-07 07:50:55
"David Abrahams" <dave_at_[hidden]> wrote in message
news:usm2379fu.fsf_at_boost-consulting.com...
| "Thorsten Ottosen" <nesotto_at_[hidden]> writes:
|
| > "David Abrahams" <dave_at_[hidden]> wrote in message
| > news:u1x9nzw3b.fsf_at_boost-consulting.com...
| > | "Thorsten Ottosen" <nesotto_at_[hidden]> writes:
| > just consider that all of the begin()'s may have an unconstrained
| > primary template version. all three is going to match.
|
| How likely is that? It doesn't seem bery likely to me. foo::begin
| will almost certainly be more specific.
who knows.
| I don't think you mean "primary template," do you? You're not talking
| about using function template specialization are you?
I just meant they all have a default version (the primary template)
like
template <class T >
some_thing begin( T& r );
| > | > begin() is a bad customization point
| > |
| > | I'm not sure of that anymore. Conflicts caused by GCC can be
| > | misleading. And now that we know how to properly isolate types
| >
| > you mean by namespaces?
|
| Yes.
then consider a TU where somebody writes
using namespace boost;
using namespace std;
using namespace foo;
| > | to prevent unintended ADL, I think it's even less of a problem.
| >
| > IMO there is no such thing as unintended ADL during a call to
| > boost::begin(). you always want it.
|
| By "unintended ADL" I mean what happens when the author of the begin()
| function that ends up getting called never intended it to be found via
| ADL for that particular argument type. I suppose I should have
| written "unintended argument-dependent matching" or something.
hm...I simply can't imagine somebody wanting that ADL should not
kick in.
If only the language had built-in capabilities for to enable both ADL
and qualified syntax...
-Thorsten
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk