On Wed, Jul 13, 2011 at 11:59 PM, Jonathan M Davis <jmdavisp...@gmx.com>wrote:
> On Wednesday 13 July 2011 23:37:02 Andrew Wiley wrote: > > 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. > > core.sys.posix.arpa.inet.d > std.c.windows.winsock.d > Both of those are platform specific, and neither of them is general enough to handle longs.