On 3/18/12 10:15 AM, deadalnix wrote:
Le 18/03/2012 15:24, Timon Gehr a écrit :
On 03/18/2012 02:54 PM, deadalnix wrote:
Given a class, that would create a very large object
This is the culprit.
if instantiated,
and a null reference, you can access memory in « raw mode ». This is
@safe D code, but really isn't.
As solution, @safe code should insert tests for null reference, or
should prevent null to be used.
This is fighting symptoms.
@safe is supposed to be a guarantee. And, even if it is bad practice, in
this case we aren't able to ensure that these guarantee are respected.
Given that, @safe doesn't guarantee anything. You may think that this
isn't a problem, but, what is the point of @safe if it is unable to
ensure anything ?
Safe guarantees your program doesn't have soft memory errors. It can
still have hard memory errors.
Andrei