On Sat, 02 Jan 2010 22:41:05 -0500, Denis Koroskin <[email protected]> wrote:

Array casting is something I avoid as a plague. It is highly inconsistent: in some cases, it does bitwise casting (kind of a reinterpret_cast, changing size of an array), in others - in creates per-element copy of an array, thus doing at runtime something I'd like to be done at compile-time.

Maybe it's just me, but I wouldn't recommend anyone using array casting (other that T[] -> void[]).

It's very consistent. It never does a per-element copy at runtime. Essentially, doing this:

cast(byte[])[a, b, c]

is equivalent to doing this:

[cast(byte)a, cast(byte)b, cast(byte)c]

the rules are:

if you cast an array literal, then it reinterprets each element as if each element were cast to that type.

otherwise, it's a reinterpret_cast as you say.

-Steve

Reply via email to