Dicebot on leaving D: It is anarchy driven development in all its glory.

Nicholas Wilson iamthewilsonator at hotmail.com
Sun Aug 26 10:23:46 UTC 2018


On Sunday, 26 August 2018 at 10:17:51 UTC, Walter Bright wrote:
> I'm not sure what you're referring to. I'm referring to the 
> specified message, and the example:
>
> struct Array
> {
>     int[] _payload;
>     ~this() // (2)
>     {
>         import core.stdc.stdlib : free;
>         free(_payload.ptr); // (3)
>     }
> }
>
> class Scanner
> {
>     Array arr;
>     this() @safe {}  // (1)
> }
>
> In order for (1) to be @safe, then the destructor it calls for 
> arr (2) must also be @safe. But the destructor calls free() 
> (3), which is not @safe. Therefore, the compilation fails. 
> Inference does not solve this problem, because (2) is inferred 
> as @system.
>

Yes but if Scanners constructor is nothrow then all is fine, 
since it won't unwind unless an error is thrown in which case it 
game over anyway.




More information about the Digitalmars-d mailing list