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.

Reply via email to