static class instances not allowed?

bearophile bearophileHUGS at lycos.com
Tue Jun 11 07:15:13 PDT 2013


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


More information about the Digitalmars-d-learn mailing list