@nogc

Piotr Szturman via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 12 02:44:07 PDT 2014


W dniu 2014-07-11 05:18, Kapps pisze:
> On Friday, 11 July 2014 at 02:32:00 UTC, Manu via Digitalmars-d wrote:
>> So, we allow assert() in nothrow functions, the argument is that
>> assert is non-recoverable, so it's distinct from user exceptions.
>>
>> I have this in my 'nothrow @nogc' function:
>>   assert(false, "Message " ~ details);
>>
>> It complains "Error: cannot use operator ~ in @nogc function"
>>
>> I think it should be allowed to invoke the GC for formatting error
>> messages inside of assert statements, just the same as assert() is
>> allowed inside of nothrow functions.
>>
>> Thoughts?
>
> More generally, I'm somewhat surprised that @nogc does not still allow
> allocating Errors (including with assert), as who cares if your program
> may slightly pause when it's about to crash in a theoretically
> unrecoverable way.

It does matter when entire program is marked with @nogc, so there may be 
no GC code at all (GC code may not be linked).


More information about the Digitalmars-d mailing list