Store mutable indirections in immutable data with this one weird trick!
    Timon Gehr 
    timon.gehr at gmx.ch
       
    Sat Nov 13 07:20:37 UTC 2021
    
    
  
On 13.11.21 07:50, Paul Backus wrote:
> 
> What do you think? Is it just crazy enough to work, or just plain crazy?
Second option.
> Is there some fatal safety violation I've overlooked?
It does not matter how you do it if the compiler assumes it does not 
happen...
DMD 2.098.0:
```d
void main()@safe{
     immutable TailUnqual!(int*) p = new int(123);
     auto mut = p.ptr;
     immutable immut = p.ptr;
     import std.stdio;
     writeln(*immut); // 123
     *mut=0;
     assert(mut is immut);
     assert(*mut == *immut);
     writeln(*mut," ",*immut); // 0 123
}
```
    
    
More information about the Digitalmars-d
mailing list