If you could make any changes to D, what would they look like?
ajieskola at gmail.com
Thu Oct 28 15:29:21 UTC 2021
On Thursday, 28 October 2021 at 14:49:41 UTC, Paul Backus wrote:
> According to the current language spec, the entire program has
> undefined behavior whether or not the result contains pointers.
> Walter has proposed to change this , but the proposal has
> not been accepted.
> : https://github.com/dlang/dlang.org/pull/2260
Some other change has been made to the spec after that PR was
made. It currently reads:
> 2. Implementation Defined: If a void initialized variable's
> value is used before it is set, its value is implementation
> void bad()
> int x = void;
> writeln(x); // print implementation defined value
> 3. Undefined Behavior: If a void initialized variable's value
> is used before it is set, and the value is a reference, pointer
> or an instance of a struct with an invariant, the behavior is
> void muchWorse()
> char p = void;
> writeln(p); // may result in apocalypse
More information about the Digitalmars-d