> 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

Reply via email to