There’s also no guarantee that unsafeBitCast won’t be used to mess with any argument to *anything* in ways that it’s not supposed to. This is just one of the perils of using unsafe APIs, of which UnsafePointer is a part.
By taking an UnsafePointer, however, the API is claiming it won’t mutate the pointer, much like a const void * in C. If it does in fact mutate it, that should be logged as a bug against the API, and the interface should be changed to use UnsafeMutablePointer instead. Charles > On May 17, 2017, at 4:09 PM, Guillaume Lessard via swift-evolution > <swift-evolution@swift.org> wrote: > > How would you deal with the existence of: > UnsafeMutablePointer<Pointee>.init(mutating other: UnsafePointer<Pointee>) > > No unsafe pointer can guarantee that it won’t be used to mutate its pointee. > Requiring a mutable variable seems like truth in advertising. > > Sincerely, > Guillaume Lessard > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution