converting a byte array to a struct array?
Trass3r
mrmocool at gmx.de
Wed Dec 30 03:37:51 PST 2009
grauzone schrieb:
> First the anti-feature: [0xAB, ...] will yield an int[], not a ubyte[]
> (I guess ubyte[] is what you're expecting). If you cast two arrays, the
> compiler will reinterpret cast all data. The result won't be what you
> intended.
>
Yeah I already encountered that problem. That's why I had to
cast(ubyte[]) it (where conversion is expected) for my reinterpret casting:
RGB[] PALETTE = (cast(RGB*) cast(ubyte[]) [...])[0..256];
> Second, the bug: casting arrays at compiletime seems to behave
> differently from casting at runtime. Casting at compiletime doesn't
> reinterpret cast, it does conversion! Demonstration here:
> http://codepad.org/OGjXADdu
>
You're right. But it only concerns casting to a struct(?) or an array of
structs, right?!. Conversion is correct for standard arrays, but struct
arrays need to be reinterpret cast (correct me if I'm wrong, I can't
imagine how conversion could be reasonably used. Only thing might be
casting an array of structs to another array of structs but I don't know
any valid use-case).
More information about the Digitalmars-d-learn
mailing list