On 09/09/2011 11:42 PM, Jonathan M Davis wrote:
On Friday, September 09, 2011 17:37:26 bearophile wrote:
Andrej Mitrovic:
I need to have an object which is initialized only once, so I thought
I could use immutable for that. But I can't do this:

private class Foo {}
immutable Foo foo;

static this()
{

     foo = new Foo;

}

void main() {}

private class Foo {}
immutable Foo foo1;

static this() {
     foo1 = new immutable(Foo);
}

void main() {
     auto foo2 = new immutable(Foo);
}

But make the constructor shared. Otherwise, it gets initialized once per
thread in spite of the fact that immutable is implicitly shared.

Shouldn't the compiler catch this?



Reply via email to