Here's an example from TDPL (with writeln's) with two modules:

-------------------------------------
module MA;

import std.stdio;
import MB;

class A
{
    static this()
    {
        writeln("A's constructor called.");
    }
}

void main()
{
}
-------------------------------------

-------------------------------------
module MB;

import std.stdio;

class B
{
    static this()
    {
        writeln("B's constructor called.");
    }
}
-------------------------------------

Compiling and running this examples gives this output:
B's constructor called.
A's constructor called.


But, according to TDPL, page 189, it states:

"MA imports MB. Then A's static class constructors run before B's"

I've tried using a driver module which imports MA and then MB, but as long as 
MA itself imports MB then I still get the same output. Error in text / in DMD?

Reply via email to