Mixin and imports

Mike Parker aldacron at gmail.com
Mon Jun 8 04:13:08 UTC 2020


On Monday, 8 June 2020 at 02:55:25 UTC, jmh530 wrote:
> In the code below, foo!fabs compiles without issue, but 
> foo!"fabs" does not because the import is not available in the 
> string mixin. If I move the import to the top of the module, 
> then it works. However, then if I move foo to another module, 
> then it will no longer compile since it is in different modules.
>
> Is there any way I can make sure the mixin knows about the 
> import?


The problem isn't the mixin. It's the template. Templates take 
the scope of their declaration, not their instantiation. So the 
mixin is getting the template's scope.

Anyway, this appears to work:

`double z = foo!"std.math.fabs"(x);`





More information about the Digitalmars-d-learn mailing list