Charles Hixson via Digitalmars-d-learn
2014-10-23 18:15:14 UTC
The code:
void go (ulong recNum)
{ assert (buf[0] == (fh.sizeof + recNo * buf.length) & 0x7f);
if (dirty)
yields the error message:
ells$ dmd test.d
test.d(78): Error: buf[0] == fh.sizeof + recNo * buf.length must be
parenthesized when next to operator &
And I'll swear it looks parenthesized to me.
void go (ulong recNum)
{ ubyte tst = (fh.sizeof + recNo * buf.length) & 0x7f;
assert (buf[0] == tst);
if (dirty)
compiles without error.
Any idea what's going on?
void go (ulong recNum)
{ assert (buf[0] == (fh.sizeof + recNo * buf.length) & 0x7f);
if (dirty)
yields the error message:
ells$ dmd test.d
test.d(78): Error: buf[0] == fh.sizeof + recNo * buf.length must be
parenthesized when next to operator &
And I'll swear it looks parenthesized to me.
void go (ulong recNum)
{ ubyte tst = (fh.sizeof + recNo * buf.length) & 0x7f;
assert (buf[0] == tst);
if (dirty)
compiles without error.
Any idea what's going on?