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