On Sunday, 13 November 2022 at 15:45:40 UTC, DLearner wrote:
On Sunday, 13 November 2022 at 14:39:26 UTC, Siarhei Siamashka
wrote:
On Sunday, 13 November 2022 at 14:28:45 UTC, DLearner wrote:
Creating a step 1.5:
```
int[] B = A;
```
```D
auto B = A.dup;
```
This will create a copy of A rather than referencing to the
same buffer in memory.
Tested:
```
void main() {
import std.stdio;
struct test_struct {
char[] Txt;
}
test_struct[] A;
A.length = 1;
A[0].Txt.length = 1;
A[0].Txt[0] = 'X';
writeln(A);
auto B = A.dup;
writeln(A, B);
A[0].Txt[0] = 'Y';
writeln(A, B);
}
```
Got:
```
[test_struct("X")]
[test_struct("X")][test_struct("X")]
[test_struct("Y")][test_struct("Y")]
```
Expected last line to be Y,X not Y,Y.
You should add the code below after "auto B = A.dup;":
B[0].Txt = A[0].Txt.dup;
The "Txt" property inside B is still referencing A without the
above.
Matheus.