On Sun, 18 Sep 2011 15:34:16 -0400, Timon Gehr <timon.g...@gmx.ch> wrote:

On 09/18/2011 08:28 PM, Andrei Alexandrescu wrote:
That would allow us to e.g. switch from the
pointer+length representation to the arguably better pointer+pointer
representation with ease.

In what way is that representation better?

I agree, I don't see why the representation is inherently better. Some operations become higher performance (i.e. popFront), and some become worse (i.e. length). Most of the others are a wash.

FWIW, you can avoid bloat by converting to runtime calls when templating is not necessary. For example, append could just be a template shell:

opBinary(string op : "~=")(T other)
{
   return _d_appendTi(...) // don't remember the parameter types/order
}

In any case, before this could happen, we'd need to implement UFCS for custom types, and we'd need a solution on how to specify const(T)[] using a template (that implicitly casts from T[]).

-Steve

Reply via email to