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? Thank you in advance, Martin > On 23 Feb 2017, at 09:33, Quinn The Eskimo! via swift-users > <swift-users@swift.org> wrote: > > > On 22 Feb 2017, at 22:16, Russell Finn via swift-users > <swift-users@swift.org> wrote: > >> … is (2) the best I can do for now? > > Yes. > > btw You can simplify the code to this: > > var description: String { > var tmp = self.path > return String(cString: &tmp.0) > } > > but it still needs that copy. > >> And is this the sort of issue that the Ownership Manifesto is designed to >> address? > > I’m not sufficiently up to speed on that topic to answer this. Sorry. > > 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