"shared" woes: shared instances of anonymous classes

Moritz Maxeiner via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jul 7 06:32:35 PDT 2017


On Friday, 7 July 2017 at 09:14:56 UTC, Arafel wrote:
> [...]
> Is there any way to create a shared instance of an anonymous 
> class?
> [...]
>
> If somebody knows how this works / is supposed to work, I'd be 
> thankful!
>
> [1]: https://dpaste.dzfl.pl/ce2ba93111a0

Yes, but it's round about: you have to instantiate the class as 
unshared and then cast it to `shared` [1].
If you look at the grammar [2][3] you'll see why: 
NewAnonClassExpression does not support specifying the storage 
class for the new instance, as opposed to NewExpression.
Do note, though, that `shared` is pretty much all rough edges 
with (virtually) no joy at present and IIRC from DConf2017 it's 
in the queue for an overhaul.

[1] https://dpaste.dzfl.pl/35a9a8a1d1f7
[2] https://dlang.org/spec/grammar.html#NewExpression
[3] https://dlang.org/spec/grammar.html#NewAnonClassExpression


More information about the Digitalmars-d-learn mailing list