I played around with UnsafeMutablePointer and realized one behavior: let pString = UnsafeMutablePointer<String>.alloc(1) pString.initialize("test") pString.predecessor().memory // will crash ax expected pString.predecessor() == pString.advancedBy(-1) // true pString.destroy() pString.dealloc(1) where
let iInt = UnsafeMutablePointer<String>.alloc(1) iInt.initialize("test") iInt.predecessor().memory // will not crash iInt.predecessor() == iInt.advancedBy(-1) // true iInt.predecessor().memory = 42 // did I just modified some memory I don't own? iInt.destroy() iInt.dealloc(1) Is this intended? This is really the case where its unsafe. -- Adrian Zubarev Sent with Airmail
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users