Hey, does anyone else thing a function like this belongs in Phobos, and if so, where do you think it should go?<div><br></div><div><div>T ntoh(T)(T val) if (__traits(isArithmetic, T)) {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>version(BigEndian) {</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>return val;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>else version (LittleEndian) {</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>ubyte[] arr = (cast(ubyte*)&val)[0 .. T.sizeof];</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>ubyte temp;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>for(int i = 0; i < T.sizeof/2; i++) {</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>temp = arr[i];</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>arr[i] = arr[T.sizeof - i - 1];</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>arr[T.sizeof - i - 1] = temp;</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>return val;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>else static assert(0, "Are you sure you're using a computer?");</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div>
<div>}</div></div><div><br></div><div>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.</div>