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

Reply via email to