Behaviour of append (~=)

Derek Parnell derek at psych.ward
Tue May 30 04:47:22 PDT 2006


On Tue, 30 May 2006 21:37:02 +1000, Lionello Lunesu  
<lio at lunesu.remove.com> wrote:

> Why does the appending to a 'null' array cause the contents to be copied?
>
> int[] ar1; // some array, not constant
>
> int[] ar2 = null;
> ar2 ~= ar1;
> // ar2 !is ar1
>
> But it could be like this:
> if (ar2)
>    ar2 ~= ar1;
> else
>    ar2 = ar1;
>
> Wouldn't it be a good optimization for ~= to check for null first, to  
> prevent the copy?

Not so sure, because for consistency sake its good to know that 'append'  
will always do a copy. Then we can rely on this to happen.

-- 
Derek Parnell
Melbourne, Australia



More information about the Digitalmars-d-learn mailing list