On 06/23/2017 09:26 PM, Felix wrote:
That works, thanks!

I've just tried this, which seems cleaner:

import std.stdio;
import std.system;
import std.bitmanip;

void ensureBigEndian(T)(ref T value) {
    if (endian == Endian.littleEndian) {
        value = *cast(T*)nativeToBigEndian(value).ptr;
    }
}

void main() {
    ubyte[] bytes = [ 0, 0, 0, 13 ];
    uint u = *cast(uint*)bytes.ptr;

    writefln("Just read: %s", u);
    u.ensureBigEndian;
    writefln("Converted: %s", u);
}

Just read: 218103808
Converted: 13

Ali

Reply via email to