On Mon, Dec 26, 2016 at 2:57 PM, David Sweeris via swift-evolution < [email protected]> wrote:
> > On Dec 26, 2016, at 11:35, Tony Allevato <[email protected]> wrote: > > Mathematically, identities are associated with (type, operation) pairs, > not types alone. > > This conversation has put me in the column of "numeric types shouldn't > have default initializers at all", personally. > > > I'd agree, except sometimes you need a T, *any* T, for when you want to > create a "pre-sized" array for stuffing results into by index: > for i in ... { > a[i] = ... > } > Simply saying "var a =[T](); a.reserveCapacity()" doesn't cut it because > it'll still crash if you try to store anything in a[i] without somehow > putting at least i+1 elements in the array first. > If you have _no_ guarantees as to what T is besides that it can be instantiated with T(), what's the point of having a [T] with not even a single actual T? Surely, there is nothing you can do with a [T] with a single placeholder T of which you have no knowledge other than it is a T? Why would you not reserve the capacity for a [T] at the point when you have at least one actual T? - Dave Sweeris > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
