On Thursday, 3 October 2013 at 18:39:48 UTC, Robert Schadek wrote:
Yes, it does not exists in the module but func is a template and I was
under the impression symbols would be seen when instantiated.

No. D doesn't have something like C++'s ADL where the template arguments lead to additional names being introduced into the scope of the template body. This is by design.

I mean the
error starts with A.func!(Foo) error instantiating.

Sorry, I don't quite get what you mean here. The error is just a follow-up to the previous one, as the inability to look up Foo caused an error while instantiating that template.

Not as easy to fix this as I have a library that generates me sqlite code at compile time which I than mixin to have as good as handwritten code. I just found it odd that it works if I instantiate the template
from the same module.

Maybe you can elaborate a bit on how the problem occurs in that context? As I said, I've found that usually it is possible to come up with a design at least as pretty (or even prettier) but doesn't rely on stringof trickery if one just stares at the problem long enough. ;)

David

Reply via email to