[swift-evolution] [Pitch] Normalize Slice Types for Unsafe Buffers
hooman at mac.com
Fri Dec 2 13:16:40 CST 2016
+1 on the third option it being clearly the best way to model pointers. Making the index strideable makes its use in index computations easy. It takes a bit care to make it work as conveniently for UnsafeBufferPointer where the stride will need to be special.
> On Dec 1, 2016, at 11:33 PM, Nate Cook via swift-evolution <swift-evolution at swift.org> wrote:
> 3) Make all buffer pointers their own slices but use a different index type. If the indices were just wrapped pointers, that would handle the index sharing without needing an additional property on the buffer. We could also maintain integer-based stridable conformance (which greatly simplifies index arithmetic), since the indices would just offset by a byte for raw buffers or a stride for typed buffers.
> The first option would certainly be the smallest change; the third seems like it would do the most good, for the reasons Dave laid out. I've tried the third option out here for raw buffers:
> https://github.com/apple/swift/compare/master...natecook1000:nc-buffer-indices <https://github.com/apple/swift/compare/master...natecook1000:nc-buffer-indices>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution