On Friday, 8 July 2022 at 12:26:03 UTC, ag0aep6g wrote:
You're allowed to copy from `ubyte[]` to `ubyte[]`. But you're
not allowed to copy from `ubyte[]` to `int*[]`, because
reinterpreting a bunch of bytes as pointers is not safe.
The thing about `void[]` is that it can point to memory that
also has a typed alias. You can have a `void[]` and a `ubyte[]`
pointing to the same memory. And you can have a `void[]` and an
`int*[]` pointing to the same memory. So if you were allowed to
copy from `void[]` to `void[]`, you'd practically be allowed to
copy from `ubyte[]` to `int*[]`. But that's not safe.
That makes a lot of sense. Thanks!