How do you debug @safe @nogc code? Can't figure out how to print.
aliak
something at something.com
Sat Nov 17 13:55:24 UTC 2018
On Saturday, 17 November 2018 at 13:43:20 UTC, Stanislav Blinov
wrote:
> On Saturday, 17 November 2018 at 13:13:36 UTC, aliak wrote:
>
>> Sawweet! Thanks, that made the printing possible!
>
> You're welcome ;) Still, try a more recent compiler. This works
> fine:
>
> void foo() @nogc {
> debug {
> import std.stdio;
> writefln("%d", 42);
> }
> }
Yeah that does, but not the code I posted ->
https://run.dlang.io/is/vH3cFa
You can use "debug blah" to hide inside functions that are
attributed, but when you have an attributed function that calls a
template, attribtues of which are supposed to be inferred, it
seems to fail.
Maybe a bug if it's supposed to work?
>
>> "scope" is const from what I understand right? It works
>> without scope as well. So just "return T".
>
> No, "scope" means "does not escape scope", i.e. you can't
> assign that argument to some global. The only exception is
> through a return, in which case "return" also needed. Whether
> or not just "return" is sufficient, is a bit out there still
> (AFAIK), between DIP25, DIP1000 and current state of the
> language.
> "scope" was implemented for delegates for ages now, exactly to
> allow passing lambdas around without allocating their context
> on the GC heap.
Aha, cool. Thanks!
More information about the Digitalmars-d-learn
mailing list