On 2009-10-19 19:34:04 +0200, Andrei Alexandrescu <seewebsiteforem...@erdani.org> said:

Denis Koroskin wrote:
Put it simple: T[] is a range, and T[new] is a container. They belong to different leagues.

Define ranges and define containers.

Yes, there is a lot common between them, because T[] supports some subset of operations that T[new] support.

No. You see, even you who have a close perspective on the issue have gotten confused. T[new] does not support assignment from range. So T[] and T[new] are not in a subtyping relationship. They support subtly different primitives.

unless I miss something
a_new[]=slice;
works just as
a[]=slice;

as in any case you have a slice on the left

a=slice; // should redefine the slice

and yes that is (correctly) not supported by T[new]

a=range;
should not be used in general imho because a slice should be a valid range, and I don't want similar operations to have very different results (changing the data or just changing the slice object itself).

Fawzi

Reply via email to