Store mutable indirections in immutable data with this one weird trick!

Dukc ajieskola at gmail.com
Sat Nov 13 10:45:49 UTC 2021


On Saturday, 13 November 2021 at 06:50:48 UTC, Paul Backus wrote:
> What do you think? Is it just crazy enough to work, or just 
> plain crazy? Is there some fatal safety violation I've 
> overlooked? Let me know in your replies!

Unless I miss something else, this is otherwise a good idea, BUT: 
The `ptr()` function _must not be pure_.

Why? If you're casting an integer to a pointer, you're 
essentially opening yourself access to global state. The user 
code can still dereference `TailUnqual` in impure code and fetch 
the address again for a normal pointer to use in `pure` code.

Smaller nitpic, I'd also prefer `opUnary(string op)()(if op == 
"*")` to `alias this`.


More information about the Digitalmars-d mailing list