> On Jun 6, 2017, at 12:56 PM, Dave Abrahams via swift-evolution > <[email protected]> wrote: > > > on Tue Jun 06 2017, Brent Royal-Gordon <[email protected] > <mailto:[email protected]>> wrote: > >>> On Jun 6, 2017, at 9:06 AM, Xiaodi Wu <[email protected]> wrote: >>> >>> Why would this be an extension on UnsafePointer and not KeyPath? >> >> 1. I can't come up with a name as good as `advanced(to:)` that would >> be attached to the key path. I use `advance(_:)` in the other two >> reasons below, but I don't think it's nearly as clear about what it's >> doing to the pointer. >> >> >> 2. Passing the pointer as the parameter would encourage use of `&`, which >> would be invalid. >> >> (\CGRect.origin.y).advance(&myRect) // Pointer might be to >> a temporary >> (&myRect).advanced(to: \.origin.y) // Rejected during compilation >> because & is not allowed >> there >> >> 3. Passing the key path as a parameter improves the code's appearance when >> you specify the key path >> in the expression. >> >> myRectPtr.advanced(to: \.origin.y) >> (\CGRect.origin.y).advance(myRectPtr) // Requires explicit type name >> and extra parentheses > > IIUC this has nothing to do with "advancing", though. Maybe "applying" > or even "map" would be a better name?
How about `offset`? > -- > -Dave > > _______________________________________________ > swift-evolution mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
