July 18, 2013
On Jul 18, 2013, at 4:23 PM, Joseph Rushton Wakeling <joseph.wakeling@webdrake.net> wrote:

> Hello all,
> 
> I have a data structure which is a final class.  Once created, the contents of the class will not be mutated (only its const methods will be called).
> 
> Is there any way to pass this to a thread via spawn() or via message-passing? I've seen instructions to use shared() but if I try and declare the class this way I get errors such as "non-shared method is not callable using a shared object" and "non-shared const method is not callable using a shared object".
> 
> The ideal would be to mark this object, once created, as immutable -- but trusty methods like assumeUnique() don't work for classes!

I'd like to add move semantics of a sort which would work via something very like assumeUnique.  For now, cast the class to shared before sending, and cast away shared on receipt.  The only other option would be fore std.concurrency to copy the class when sent, but this requires serialization support.
July 19, 2013
On Thursday, 18 July 2013 at 23:39:19 UTC, Sean Kelly wrote:
> I'd like to add move semantics of a sort which would work via something very like assumeUnique.

That would be great.

> For now, cast the class to shared before sending, and cast
> away shared on receipt.  The only other option would be
> fore std.concurrency to copy the class when sent, but this
> requires serialization support.

Ahh, that works. Thanks!