[swift-users] Implicitly capture a mutating self
Richard Wei
rxrwei at gmail.com
Fri Dec 16 02:10:53 CST 2016
Capturing makes it immutable, which unfortunately can't solve this problem.
-Richard
> On Dec 16, 2016, at 02:05, Zhao Xin <owenzx at gmail.com> wrote:
>
> I did not test the code. But if you cannot implicitly capture a mutating self, you should do it explicitly, right?
>
> let blockSize = min(512, count)
> let blockCount = (count+blockSize-1)/blockSize
> device.sync { [self] () -> () in // Launch CUDA kernel
> try! fill<<<(blockSize, blockCount)>>>[
> .pointer(to: &self), .value(value), .value(Int64(count))
> ]
> }
>
> Hope above code works.
>
> Zhaoxin
>
> On Fri, Dec 16, 2016 at 3:46 PM, Richard Wei via swift-users <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
> Hi,
>
> Swift 3.0.2 seems to have broken my code due to mutating self capture. But I have to pass inout self to the closure. Any workaround?
>
> let blockSize = min(512, count)
> let blockCount = (count+blockSize-1)/blockSize
> device.sync { // Launch CUDA kernel
> try! fill<<<(blockSize, blockCount)>>>[
> .pointer(to: &self), .value(value), .value(Int64(count))
> ]
> }
>
> <PastedGraphic-1.png>
>
> -Richard
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org <mailto:swift-users at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users <https://lists.swift.org/mailman/listinfo/swift-users>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20161216/770fe578/attachment.html>
More information about the swift-users
mailing list