Hey, does anyone else thing a function like this belongs in Phobos, and if so, where do you think it should go?
T ntoh(T)(T val) if (__traits(isArithmetic, T)) { version(BigEndian) { return val; } else version (LittleEndian) { ubyte[] arr = (cast(ubyte*)&val)[0 .. T.sizeof]; ubyte temp; for(int i = 0; i < T.sizeof/2; i++) { temp = arr[i]; arr[i] = arr[T.sizeof - i - 1]; arr[T.sizeof - i - 1] = temp; } return val; } else static assert(0, "Are you sure you're using a computer?"); } I was looking for something along these lines in the docs today and couldn't find it. It looks like there's a stream in std.stream to do this, but, well, I think we've all been pretending std.stream doesn't exist for a while now.