anyway to debug nogc code with writeln?
Ali Çehreli
acehreli at yahoo.com
Sat Sep 1 22:38:46 UTC 2018
You can strip off any attribute with SetFunctionAttributes:
import std.stdio;
// Adapted from std.traits.SetFunctionAttributes documentation
import std.traits;
auto assumeNoGC(T)(T t)
if (isFunctionPointer!T || isDelegate!T)
{
enum attrs = functionAttributes!T | FunctionAttribute.nogc;
return cast(SetFunctionAttributes!(T, functionLinkage!T, attrs)) t;
}
void f(T)(auto ref T) {
writeln("yo");
}
@nogc void main() {
assumeNoGC(() => f(3));
// or
assumeNoGC( { writeln("yo"); });
}
Ali
More information about the Digitalmars-d-learn
mailing list