On Tue, 23 Aug 2011 07:45:33 -0700, Andrei Alexandrescu wrote: > On 8/23/11 6:15 AM, foobar wrote: >> == Quote from bearophile (bearophileh...@lycos.com)'s article >>> foobar: >>>> you raise a valid concern but this looks too complicated. I'd suggest >>>> to simplify into only two cases. >>>> >>>> // 1) T.INIT - as you suggested the dimension should be checked auto >>>> foo = new int[][](10, 20); // correct auto foo1 = new int[][](10); // >>>> compilation error >>> Keep in mind that currently this is correct and it generates a 1D >>> dynamic array: auto v = new int[10]; >> >> Isn't this an inconsistency in the language? >> >> // Generally speaking, allocates an instance of T on the heap auto foo >> = new T; >> >> However, "int[10]" and "new int[10]" are different types. > > I hate that, too. Walter hates it, too, but we both reckon it's too late > now to change things.
I, for one, would welcome this change. It's a horrible inconsistency in the language. -Lars