how is this array subtyping inside struct (bug?) possible?
mw
mingwu at gmail.com
Sun Aug 9 18:45:07 UTC 2020
Hi,
I want to share an array among a number of structs, with
subtyping, I tried this, and find some strange behavior:
```
class SharedArray(T) {
public T[] array;
alias array this; // subtyping
}
alias Filenames = SharedArray!(string);
struct S {
Filenames fns;
void alloc() {
fns = new Filenames();
}
}
void main(string[] args) {
S s0;
s0.alloc();
s0.fns ~= "abc";
foreach (i; 0..3) {
S* s1 = new S();
*s1 = s0; // copy the value from s0 to *s1
writeln(s0.fns);
}
}
```
program output:
```
["abc"]
[]
[]
```
why s0.fns changed after copy the value from s0 to *s1?
Is this a bug?
More information about the Digitalmars-d
mailing list