On 8/14/15 6:25 PM, DarthCthulhu wrote:
On Friday, 14 August 2015 at 12:40:08 UTC, Steven Schveighoffer wrote:I would do it this way: // at module level debug(logging) { Logger logger; static this() { logger = new Logger;} }By 'module level', I assume you mean in the module that defines the Logger class? An 'import debug.logger' or somesuch would then give all relevant modules access, correct?
I mean, in global scope (which is defined as being part of the module). Not inside a class/struct/function.
Is the compiler smart enough to compile out all the symbols associated with the logger if it is never instantiated?
If it's never instantiated, and it's a template, then it will not be compiled in.
If it's not a template, it could potentially make it into the binary. -Steve
