On Tuesday, 12 April 2016 at 14:22:22 UTC, Adam D. Ruppe wrote:
On Tuesday, 12 April 2016 at 13:44:07 UTC, Mithun Hunsur wrote:
I'm looking for the equivalent of `typeof(this)` in module scope (so that it gets the current module).

The trick I use is `mixin(__MODULE__)`.

I also mentioned this in my book

https://www.packtpub.com/application-development/d-cookbook

the free sample is the reflection chapter which has a few tricks like this.

Thanks! That works great. For anyone else stumbling across this in the future: if your mixin is in another file, you need to pass in __MODULE__ as a default argument:

mixin template ATemplate(string moduleName = __module__)
{
mixin(moduleName); // Is a reference to the module that instantiated it.
}

This can be a little finicky, so I'd still like to see language-level support for getting the current module (perhaps defining 'this' at module-level to be the current module). I'll probably make a post in the main group for it - thanks for the help :)

Reply via email to