On Fri, 30 Mar 2012 20:25:10 -0400, Walter Bright
<[email protected]> wrote:
On 3/30/2012 12:36 PM, Walter Bright wrote:
On 3/30/2012 12:11 PM, Steven Schveighoffer wrote:
On Fri, 30 Mar 2012 14:27:43 -0400, Walter Bright
<[email protected]>
wrote:
I would argue that:
3. An extension method for an argument of type template parameter T
will be
looked up only in the instantiation scope.
I don't think you looked at my counter case in detail. Your idea leads
to two
different instantiations of tmpl!Foo having two different
implementations,
depending on which extension methods you include. In fact, in one
place, the
instantiation might succeed, but in another, the instantiation might
fail.
Yes, you're right. I missed that nuance. I don't really know how to fix
it.
Ah, I know how to fix it. Mark such instantiations as "local" ones, so
they are mangled with the module name of where they were instantiated
from.
As I mentioned, this is the horrible solution I did not wish to have :(
What is wrong with my proposal (item 2 from my original post)? It seems
like it would be as easy to implement as your proposal, and does not
create "local" instantiations.
-Steve