Static constructor call ordering in imported modules
Andrej Mitrovic
andrej.mitrovich at gmail.com
Sun Aug 8 11:55:40 PDT 2010
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?
More information about the Digitalmars-d
mailing list