On Friday, 9 January 2015 at 18:35:56 UTC, anonymous wrote:
On Friday, 9 January 2015 at 18:25:42 UTC, John Colvin wrote:
struct S
{
void* p;
}
void main()
{
S s;
auto a = cast(void*)s; //Error: e2ir: cannot cast s of type
S to type void*
}
Is there are a good reason for this being disallowed?
You'd expect `cast(void*)s == s.p`? That doesn't work for any
type of p.
I was expecting it to work regardless of the type of p. I have an
8 byte (on x86_64) struct which I want to reinterpret as a void*
You can do it with a slightly fancier (and more dangerous)
cast: `*cast(void**)&s`.
Yuk. Better than nothing though. Thanks :)