Why do immutable variables need reference counting?
    Salih Dincer 
    salihdb at hotmail.com
       
    Mon Apr 11 12:12:39 UTC 2022
    
    
  
On Monday, 11 April 2022 at 03:24:11 UTC, Ali Çehreli wrote:
> 
> The output:
>
> 0 is (about to be) alive!
> 0 is (already) dead.
> 1 is (about to be) alive!
> 1 is (already) dead.
> 2 is (about to be) alive!
> 2 is (already) dead.
It worked for me in a different way.
> 1 is (about to be) alive!
2 is (already) dead.
2 is (already) dead.
2 is (already) dead.
> 2 is (already) dead.
2 is (already) dead.
Hello D!
1 is (already) dead.
Because I changed the code like this.
```d
struct S
{
   . . .
   string toString() { return ""; }
}
//S test(inout S s)/*
S test(S s)//*/
{
   s.i = 2;
   return s;
}
void main()
{
   immutable s = S(1);
   test(s).writeln;
   "Hello".writefln!"%s D!";
}
```
If the inout is set, it does not allow compilation.
Thanks, SDB79
    
    
More information about the Digitalmars-d-learn
mailing list