On Friday, 17 July 2015 at 19:03:46 UTC, Jacob Carlborg wrote:
On 2015-07-17 20:58, byron wrote:

Ah I miss read, if you want as a float, not a float array you can do:

byte[] b = [1, 2, 3, 4];
float f = *cast(float*)b.ptr;

not sure if there is a better way

I think a union can be used as well, not sure if it's better though.

not a bad idea.

testing on asm.dlang.org both reduce to the same assembly
(-release -inline -O)

float pointerTest(inout byte[4] b) {
   return *cast(float*)b.ptr;
}

float unionTest(inout byte[4] b) {
  union U {
   byte[4] b;
    float f;
  }
  return U(b).f;
}

Reply via email to