shared: Has anyone used it without a lot of pain?
Atila Neves via Digitalmars-d
digitalmars-d at puremagic.com
Tue Apr 4 14:56:37 PDT 2017
I feel dirty if I write `__gshared`. I sneeze when I read it. But
everytime I try and use `shared` I get trouble for it.
TIL that if I want a struct to be both `shared` and not,
destructors are out of the way. Because while constructors are
easy because we can have more than one:
struct Foo {
this(this T)() { }
}
auto f1 = const Foo();
auto f2 = shared Foo();
There can be only one destructor:
struct Bar {
this(this T)() { }
~this() {} // no shared, if there was the problem would
reverse
// ~this(this T)() {} isn't a thing
}
auto b1 = const Bar();
// Error: non-shared method foo.Bar.~this is not callable using a
shared object
// auto b2 = shared Bar(); //oops
The reason why what I was trying to do isn't possible is obvious
in hindsight, but it's still annoying. So either code duplication
or mixins, huh?
Atila
More information about the Digitalmars-d
mailing list