digitalmars.D - Reading the ModuleInfo data?
- "Uwe Salomon" <post uwesalomon.de> Jul 04 2005
I'd like to know if it is possible to get a pointer to the ModuleInfo
object of the current module. I am asking because i want to do something
like this:
#### library module ####
module some.library;
template LibraryMixin()
{
void func(char[] str)
{
someOtherFunc(str, currentModule.name); // HERE
}
}
####
#### program module ####
module my.program;
mixin LibraryMixin!();
int main(char[][] args)
{
func("Hello, world.");
return 0;
}
####
The line marked with “HERE” calls someOtherFunc(), and it should pass the
name of the current module to it. As the function belongs to a mixin that
is inserted into module my.program, that should be "my.program" or
something similar, but *not* "some.library".
I could of course solve that with something like this:
####
module some.library;
template LibraryMixin(alias moduleName)
// use the moduleName...
####
module my.program;
char[] modName = __FILE__;
mixin LibraryMixin!(modName);
####
But that requires this extra line i'd really like to avoid if possible, to
make the use of some.library as simple to the user as possible.
Thanks & ciao
uwe
Jul 04 2005








"Uwe Salomon" <post uwesalomon.de>