Debug function / macro
Paul Backus
snarwin at gmail.com
Mon Feb 3 23:55:42 UTC 2020
On Monday, 3 February 2020 at 22:07:13 UTC, ag wrote:
> Does D have a debugging helper function or macro similar to
> this one in Rust? (https://doc.rust-lang.org/std/macro.dbg.html)
>
> If not, how would one implement this / how difficult would it
> be to implement?
Here's one way you could do it:
string debugPrint(string expr, string file = __FILE__, size_t
line = __LINE__)
{
import std.format;
return q{() {
import std.stdio: writeln;
debug writeln(`[%2$s:%3$d] %1$s`, " = ", %1$s);
}();}.format(expr, file, line);
}
void main()
{
int x = 123;
int y = 456;
mixin(debugPrint("x + y"));
}
More information about the Digitalmars-d-learn
mailing list