Discussion Thread: DIP 1035-- at system Variables--Community Review Round 2
Timon Gehr
timon.gehr at gmx.ch
Fri Feb 26 10:53:39 UTC 2021
On 26.02.21 11:08, Walter Bright wrote:
> On 2/26/2021 1:57 AM, Walter Bright wrote:
>> 2. disallow void initialization if the struct has an invariant
>
> Thinking about this some more.
>
> An invariant specifies a subset of values that the fields could have,
> while a void initialization means any random values are acceptable.
>
> Therefore (2) makes sense.
An invariant is anything that remains true throughout the execution, and
it's not always easy to check. (2) makes sense, but it's not a
substitute for @system fields. @safe code shouldn't be able to mess with
unsafe values at all, not only through `void` initialization, and
@system code should be able to define its own unsafe values.
More information about the Digitalmars-d
mailing list