import std.stdio; import std.outbuffer; import std.bitmanip; union Cast { double value; mixin(bitfields!( uint, "low", 32, uint, "high", 32 )); } void main() { OutBuffer ob = new OutBuffer; ob.write(12.34); ubyte[] a = ob.toBytes(); double[] b = cast(double[])ob.toBytes(); writeln("OutBuffer.toBytes(): ", a); writeln("cast(double[]): ", b[0]); uint[] d = cast(uint[])ob.toBytes(); Cast c; c.low = d[0]; c.high = d[1]; writeln("Cast: ", c.value); assert(b[0] == 12.34); assert(c.value == 12.34); }
もっと簡単にやれると思うんだけどなあ.どうやるんだろ.