Eric:

The following code does not compile:

class Foo { int x; }
class Bar { static Foo f = new Foo(); }  // compiler error
static Foo g = new Foo(); // compiler error
void main() {}

(dmd7) desk3:~/tp/d_test2/dlib>dmd T.d
T.d(4): Error: variable T.Bar.f is mutable. Only const or immutable class thread local variable are allowed, not T.Foo T.d(5): Error: variable T.g is mutable. Only const or immutable class thread local variable are allowed, not T.Foo

Why aren't static class instances allowed? Is there a work-around,
or alternative approach to this?

C# compilers present bugs with a standard number, like:

myprog.cs(7,60): error CS1525: .......

This is useful because you can then write an explanation page for each of those bugs, like CS1525:

http://msdn.microsoft.com/en-gb/library/3hdyz4dw%28v=vs.80%29.aspx

In such pages you can explain why Only const or immutable class thread local variable are allowed.

Bye,
bearophile

Reply via email to