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