Pointers are not guaranteed to be safe. DIP1000 was supposed to solve the issue of a pointer referencing to a now expired variable (see example below), but it’s being replaced by something else instead.
int* p;
{
int q = 42;
p = &q;
}
writeln(*p); //ERROR: This will cause memory leakage, due to q no longer existing
Pointers are not guaranteed to be safe. DIP1000 was supposed to solve the issue of a pointer referencing to a now expired variable (see example below), but it’s being replaced by something else instead.
int* p; { int q = 42; p = &q; } writeln(*p); //ERROR: This will cause memory leakage, due to q no longer existing
So I guess they are forbidden in
@safe
mode?Do you know what is the replacement? I tried looking up DIP1000 but it only says “superceded” without mentioning by what.
This makes me wonder how ready D is for someone that wants to extensively use
@safe
though.https://github.com/ZILtoid1991/newxml/tree/main
This XML parser of mine uses safe by default.
It also seems to require a GC though…