[swift-evolution] [Review] SE-0006 Apply API Guidelines to the Standard Library

Guillaume Lessard glessard at tffenterprises.com
Sat Jan 23 01:31:31 CST 2016


I disagree with the following change to UnsafeMutablePointer:
-  public static func alloc(num: Int) -> UnsafeMutablePointer<Pointee>
+  public init(allocatingCapacity count: Int)

This would make it the only constructor in any of OpaquePointer, UnsafePointer, UnsafeMutablePointer and UnsafeReference to have the side-effect of allocating memory. All the others are relatively cheap transformations on pointer values, and get used a lot for typecasting. An allocating constructor would be less locatable among such uses of typecasting-via-constructor. The memory-allocating static method has the merit of sticking out, and pairs nicely with the necessary deallocation call, like the malloc/free pair.

Guillaume Lessard

More information about the swift-evolution mailing list