question about using std.bitmanip.read

Charles via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Nov 6 19:19:42 PST 2015


Hi guys,

It's me again... still having some issues pop up getting started, 
but I remain hopeful I'll stop needing to ask so many questions 
soon.

I'm trying to use std.bitmanip.read; however, am having some 
issues using it. For basic testing I'm just trying to use:

     read!double(endianess, ubyteArr).writeln;

endianess is an Endian from std.system, and ubyteArr is an 8 byte 
ubyte[].

When I run this I get:

Error: template std.bitmanip.read cannot deduce function from 
argument types !(double)(Endian, ubyte[]), candidates are:
     std.bitmanip.read(T, Endian endianness = Endian.bigEndian, 
R)(ref R range) if (canSwapEndianness!T && isInputRange!R && 
is(ElementType!R : const(ubyte)))
dmd failed with exit code 1.


Clearly that didn't work, so I tried excluding the endianess:

     read!double(ubyteArr).writeln;

and that does work! But its the wrong byte order, so its 
incorrect anyways.

I went to std.bitmanip to look for unittests using the Endian, 
and the only one that does uses read!(T, endianness), which needs 
endianness to be known at compile time, which I don't have.

Any suggestions?


More information about the Digitalmars-d-learn mailing list