On Thursday, 13 June 2013 at 19:47:23 UTC, Agustin wrote:
I would like to know if static members are shared between 2
library. For example:
Class A
{
static uint var;
}
From Library A:
A::var = 3;
From Library B:
if( A::var == 3 )
...
Its this possible? if not, its any way to make it happend?
The members are shared between different modules, yes. You use .
instead of :: for scope resolution. You can also initialise a few
things in a static constructors at class scope...
class A {
static uint var;
static this() {
var = 3;
}
}
Or at module scope...
class A {
static uint var;
}
static this() {
A.var = 3;
}
You should note that the data isn't shared between threads by
default, but that's another detail. You can also usually produce
a design that uses non-static data instead of static data.