> On Jun 23, 2016, at 6:40 PM, Andrew Trick via swift-evolution 
> <[email protected]> wrote:
> 
> https://github.com/atrick/swift-evolution/blob/voidpointer/proposals/XXXX-unsaferawpointer.md

Would anyone like to bikeshed the allocation API? Here are two options with a 
slight stylistic difference:

# Option 1:

extension UnsafeMutableRawPointer {
    init<T>(allocatingCapacity: Int, of: T.Type)

    func deallocate<T>(capacity: Int, of: T.Type)
}

let ptrToA = UnsafeMutableRawPointer(allocatingCapacity: 1, of: A.self)
  .initialize(A.self, with: A())
ptrToA.deinitialize(count: 1).deallocate(capacity: 1, of: A.self)

# Option 2:

extension UnsafeMutableRawPointer {
    static allocate<T>(capacity: Int, of: T.Type) -> UnsafeMutableRawPointer

    func deallocate<T>(capacity: Int, of: T.Type)
}

let ptrToA = UnsafeMutableRawPointer.allocate(capacity: 1, of: A.self)
  .initialize(A.self, with: A())
ptrToA.deinitialize(count: 1).deallocate(capacity: 1, of: A.self)

-Andy
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to