How do you put log calls in constructors when they may be created in a static context?
Timoses
timosesu at gmail.com
Fri Aug 10 09:29:04 UTC 2018
On Wednesday, 8 August 2018 at 21:54:34 UTC, aliak wrote:
> I'm trying to debug stuff, so I want to add verbose logging
>
> struct S(T) {
> this() {
> writeln("created S(T) with properties and ID");
> }
> }
>
> static a = S!int(); // bah
>
> I guess users can call this code from any context, but when i'd
> also like to see the log output for debugging purposes. Is
> there a way around this?
>
> Can I maybe only do a writeln in a non compile-time context?
>
> Cheers,
> - ali
How about debug [1]?
struct S()T {
this() {
debug { writeln("Created..."); }
}
}
and compile with the debug flag. You can also specify a debug
identifier or level.
[1]: https://dlang.org/spec/version.html#debug
More information about the Digitalmars-d-learn
mailing list