On Wednesday, 19 July 2017 at 14:56:58 UTC, Dukc wrote:
Shouldn't it be :
struct A
{
    ~this() shared {}
}

void main()
{
    auto a = A();
    shared b = A();
}
?

Because handling theard-local data as shared is safe as far as I remember, but not the other way round.

Non-shared structs/classes can't call shared methods.

Unless you're saying that the above should work even though it currently doesn't. Even then, I don't know about that. If your type is complex enough to need a shared dtor then the dtor probably needs to do some locking or extra checks. You don't want to impose that cost on a struct instance which isn't shared.

Reply via email to