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?