On Wednesday, 2 March 2016 at 20:07:30 UTC, Jacob Carlborg wrote:
On 2016-03-02 21:01, Ozan wrote:

I agree for slices, but typically variables should have his own data.
int a = 1:
int b = a;  // data copy

int[] a;
int[] b = a; // pointer copy

is not the same and should be avoid.

Same thing for objects which are reference types.

Yes, but D handles basic datatypes (int, char, ...) different to objects (similar to Java). And again an assignment like int[] b = a has his risks which should be avoid in language design. Reading code requires some experience but should would like expected from other languages.
From security point of view I would recommend a style like

int[] b = a; // data copy
int[] b = a.ptr; // pointer copy, b & a pointing to the same data. a == b / a is b
Better as int* b = a.ptr; which has same risks like in C
int[] b = a.slice; // slice "copy", same data but with mighty slices, a ?= b / a !is b
int[] b = a.dup; // data copy, a == b / a !is b

Regards, Ozan

Reply via email to