Static attributes & immutability, static attributes seen from instances

Walter Bright newshound1 at digitalmars.com
Fri Mar 5 16:41:31 PST 2010


bearophile wrote:
> This is a reduced version of a D2 program, written while I was trying
> to use/learn immutability. This program compiles:
> 
> 
> struct Foo { static int x; } void main() { immutable Foo f; Foo.x++; 
> f.x++; }
> 
> 
> My idea was that immutable applied to a struct makes every thing in
> such struct namespace immutable. I was wrong, but what do you think
> about changing a little how D works here? A possible idea is: if one
> instance is 'const', then the static attribute x is seen as const
> from just that instance. If one instance is set to 'immutable' as
> here, then the static attributes become immutable in every instance
> of Foo.

I think that's unworkable, as static variables cannot immutable in one 
instance and mutable in another.



More information about the Digitalmars-d mailing list