On Mon, 19 Oct 2009 20:16:50 +0400, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
I thought I explained that above and in several other posts. I have the
feeling this is going in circles, but let me add one more thing. People
would want to have a reasonable way of choosing between T[new] and T[].
The differences between them are subtle (I have two tables showing the
primitives of T[] and T[new], which are very similar). That static
decision concerns future appends to the array, which doesn't strike me
as something you know from the get-go through future iterations of a
design. Use of "auto" messes up things further: a nice function may
choose to return T[new] because it just created an array (an
implementation detail), but clients may find that unexpected.
Put it simple: T[] is a range, and T[new] is a container. They belong to
different leagues.
Yes, there is a lot common between them, because T[] supports some subset
of operations that T[new] support.
We are going in circles because you couldn't convince anyone that we don't
need dynamic array type in language core. Not unless library types are
usable in CTFE (and have nice syntax).