Can we just have struct inheritence already?

Exil Exil at gmall.com
Fri Jun 14 00:23:13 UTC 2019


On Thursday, 13 June 2019 at 21:26:37 UTC, Tim wrote:
> On Thursday, 13 June 2019 at 20:55:34 UTC, Exil wrote:
>> This problem happens because you are used @trusted. If you 
>> used @safe you wouldn't be able to increment pointers and 
>> modify the values the way you did in @trusted.
>
> Here is a completly @safe version:
>
> import std.stdio;
>
> static int[2] data;
> static int[253] data2;
>
> void test(bool b) @safe
> {
> 	data[b]++;
> }
>
> void main() @safe
> {
> 	bool b = void;
> 	writeln(data, data2);
> 	test(b);
> 	writeln(data, data2);	
> }
>
> If b is valid only data can change. But for me data2 changes, 
> even though it is never written to.

This is a bug. It seems it doesn't do bounds checking for the 
index because it is a bool value and it is less than the static 
type. If you change the array to a dynamically allocated one, an 
assert is hit as expected.


More information about the Digitalmars-d mailing list