The demise of T[new]
Jason House
jason.james.house at gmail.com
Sun Oct 18 20:10:53 PDT 2009
Andrei Alexandrescu Wrote:
> dsimcha wrote:
> > == Quote from Andrei Alexandrescu (SeeWebsiteForEmail at erdani.org)'s article
> >> Jason House wrote:
> >>> Andrei Alexandrescu Wrote:
> >>>
> >>>> grauzone wrote:
> >>>>> Walter Bright wrote:
> >>>>>> We both feel that this would simplify D, make it more flexible,
> >>>>>> and remove some awkward corner cases like the inability to say
> >>>>>> a.length++.
> >>>>> How would this remove this corner case?
> >>>> Can't increment length if it's read-only.
> >>>>
> >>>> Andrei
> >>> removing syntactic sugar doesn't really remove corner cases. T[new]
> >>> is being replaced with an array builder. What usage semantics are
> >>> given up with an array builder? How will implicit conversions be
> >>> handled? (alias this, etc...). How will the Phobos array buiilder
> >>> support user specified lengths (for efficiency)?
> >> I think ArrayBuilder could a logic similar to Appender for "~=" and
> >> otherwise offer regular array primitives. I don't think implicit
> >> conversion to T[] is an essential feature, but it can be done.
> >> Andrei
> >
> > So basically, ArrayBuilder would be like T[new], except:
> >
> > 1. It would be a plain old library type, and the core language would know nothing
> > about it.
> > 2. T[].dup, T[] ~ T[], new T[3], etc. would return T[], not ArrayBuilder/T[new].
> >
> > Is this basically correct?
>
> Yes, that's the plan. I hope you're not setting me up or something :o).
>
> Andrei
I was ;) Well, only sort of. I'm undecided if array-like syntactic sugar makes sense for array builder. Afterall, AA's fit into a similar category. I did notice you wanted to make array builder a struct which implies it won't be used in the same manner as T[new]
More information about the Digitalmars-d
mailing list