Cast class reference to pointer of another class?

JN 666total at wp.pl
Thu Jun 10 21:25:35 UTC 2021


On Saturday, 29 May 2021 at 22:26:48 UTC, ag0aep6g wrote:
> You're writing @system code, so dangerous casts are allowed. 
> It's no surprise that the code compiles. If you want to be 
> safeguarded against such things, use @safe.
>
> The result is a class object being reinterpreted as a struct 
> object. Usually, that's just nonsense. But it might be useful 
> for some expert who wants to tinker with the object's internals.

I have to disagree. I don't see a good reason for this behavior 
and it's just one more thing to trip people. I think it'd be 
better if such thing was done explicit, something like:

```d
Bar b = new Bar();
Foo* f2 = cast(Foo*)b.ptr;
```


More information about the Digitalmars-d-learn mailing list