On Sat, 22 Nov 2014 08:07:31 -0800 "H. S. Teoh via Digitalmars-d-learn" <digitalmars-d-learn@puremagic.com> wrote:
> On Sat, Nov 22, 2014 at 05:57:30PM +0200, ketmar via Digitalmars-d-learn > wrote: > > On Sat, 22 Nov 2014 15:45:51 +0000 > > Eric via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote: > > > > > Maybe this is not so lame because change() can take > > > any length of static array. > > > > void change (int[] arr) { > > arr[1] = 42; > > } > > > > void main () { > > int[$] a = [1, 2, 3]; > > change(a); > > This is actually really scary that static arrays implicitly decay to a > dynamic array slice. It can cause all sorts of problems with escaping > dangling references to local variables: i don't even want to argue with that. ;-) just 'cause i'm sure that you are right, and this code shouldn't compile at all without explicit slicing of `a`. but this is what we have now, and i bet it will stay with us, 'cause "changing that will break alot of correct D code". so if we can't annihilate it, let's use it! ;-)
signature.asc
Description: PGP signature