This reminds me of my previous question https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20170220/004841.html <https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20170220/004841.html>
> Is that simplified guaranteed to work? The Swift book says that > > > As an optimization, when the argument is a value stored at a physical > > address in memory, the same memory location is used both inside and outside > > the function body. > > but also > > > Write your code using the model given by copy-in copy-out, without > > depending on the call-by-reference optimization, so that it behaves > > correctly with or without the optimization. > > If `tmp.0` is copied to a separate location then `String(cString: &tmp.0)` > would not work correctly, or would it? to which Quinn responded https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20170220/004842.html <https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20170220/004842.html> > Based on a previous conversation I had with the Swift folks about this, yes. > > However, I don’t work on the compiler so it’s possible I misunderstood. > Perhaps someone from SwiftLand™ will chime in here. Some authoritative response from SwiftLand™ would be much appreciated. Regards, Martin > On 19. Apr 2017, at 09:16, Quinn The Eskimo! via swift-users > <swift-users@swift.org> wrote: > > > On 19 Apr 2017, at 02:11, Rick Mann via swift-users <swift-users@swift.org> > wrote: > >> In my C-interop, I have a need to do this a lot: > > I think you’re working too hard here. Try this: > > func callbackFailed(info inInfo: lgs_result_info_t) { > var m = inInfo.message > let message = String(cString: &m.0) > debugLog("Failed: \(message)") > } > > Alas, you still need to do the copy in order to take the address of `m`. > > Share and Enjoy > -- > Quinn "The Eskimo!" <http://www.apple.com/developer/> > Apple Developer Relations, Developer Technical Support, Core OS/Hardware > > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users