Setting immutable static data inside a struct in a module constructor?

Alex sascha.orlov at gmail.com
Sun Mar 3 20:41:36 UTC 2019


On Sunday, 3 March 2019 at 20:10:14 UTC, aliak wrote:
> Is it possible to initialize static immutable members of a 
> struct like you could do for a global immutable one?
>
> immutable string a;
> struct Test {
>   static immutable string b;
> }
>
> shared static this() {
>   a = "foo";
>   Test.b = "bar";
> }
>
> Error: cannot modify immutable expression b

Hmm... should work, I think...
But this works in any case:

immutable string a;
struct Test {
   static immutable string b;
   shared static this() {
     b = "bar";
   }
}

shared static this() {
   a = "foo";
}

void main(){
     assert(a == "foo");
     assert(Test.b == "bar");
}


More information about the Digitalmars-d-learn mailing list