[swift-evolution] [Review] SE-0107: UnsafeRawPointer API "initialize(from:forwardToCount:)"

Andrew Trick atrick at apple.com
Tue Jul 5 10:23:25 CDT 2016


> On Jul 2, 2016, at 10:10 PM, Brent Royal-Gordon via swift-evolution <swift-evolution at swift.org> wrote:
> 
> I have a pile of naming quibbles; rather than describe them all in prose (which turned into a mess), I've annotated parts of the "Full UnsafeRawPointer API" section in a gist: <https://gist.github.com/brentdax/8f4ed4decafc1d18c4441092baa13cfe <https://gist.github.com/brentdax/8f4ed4decafc1d18c4441092baa13cfe>>.

I want to call this out separately because it’s not specific to my proposal and changes the existing UnsafePointer API.

Brent’s suggestion is to change `initialize(from:count:)` to `initialize(from:forwardToCount:)` for symmetry with the backward operations. It makes perfect sense to me, and it does a better job of conveying that a sequence of elements will be read out of “from”.

Any objections?

  // I'm not happy with the asymmetry of these forwards/backwards 
  // pairs.
  // 
  // func initialize<T>(from: UnsafePointer<T>, count: Int)
  //   -> UnsafeMutablePointer<T>
  // func initializeBackward<T>(from: UnsafePointer<T>, count: Int)
  //   -> UnsafeMutablePointer<T>
  func initialize<T>(from: UnsafePointer<T>, forwardToCount: Int)
    -> UnsafeMutablePointer<T>
  func initialize<T>(from: UnsafePointer<T>, backwardFromCount: Int)
    -> UnsafeMutablePointer<T>

  // More detailed thoughts on redesigining `move` methods in the 
  // email, but for now:
  // 
  // func moveInitialize<T>(from: UnsafePointer<T>, count: Int)
  //   -> UnsafeMutablePointer<T>
  // func moveInitializeBackward<T>(from: UnsafePointer<T>, count: Int)
  //   -> UnsafeMutablePointer<T>
  func moveInitialize<T>(from: UnsafePointer<T>, forwardToCount: Int)
    -> UnsafeMutablePointer<T>
  func moveInitialize<T>(from: UnsafePointer<T>, backwardFromCount: Int)
    -> UnsafeMutablePointer<T>

Andy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160705/12faa9c5/attachment.html>


More information about the swift-evolution mailing list