Inability to dup/~ for const arrays of class objects
Peter Williams
pwil3058 at bigpond.net.au
Thu May 30 17:23:32 PDT 2013
On 30/05/13 16:21, Ali Çehreli wrote:
> On 05/29/2013 06:54 PM, Peter Williams wrote:
> > Wouldn't a better rule for pass by value be that any changes to
> > the data part of the array (including assignment to an element) causes
> > reallocation of the entire data portion.
>
> The type of a slice parameter is not different than a local slice
> variable. Since we wouldn't want an entire copy of the elements due to
> an element mutation:
>
> int[] whole = // ...;
> int[] firstHalf = whole[0 .. $/2];
> firstHalf = 42; // this should affect whole
>
> Moving the last two lines to a new function should not change meaning:
>
> int[] whole = // ...;
> setFirstHalf(whole, 42); // should still affect whole
I think that setFirstHalf() should only effect whole if it's passed in
by reference. I certainly intend to adopt that practice in my D code.
Peter
More information about the Digitalmars-d
mailing list