On Saturday, 17 March 2018 at 18:36:35 UTC, Jonathan wrote:
On Tuesday, 19 January 2016 at 23:36:14 UTC, Adam D. Ruppe
wrote:
On Tuesday, 19 January 2016 at 22:12:06 UTC, Soviet Friend
wrote:
I don't care if my computer needs to do math on a 4 byte
basis, I'm not writing assembly.
x86 actually doesn't need to do math that way, if you were
writing assembly, it would just work. This is just an annoying
rule brought over by C.
Can I prevent the initial implicit casts?
Nope, though you can help tell the compiler that you want it
to fit there by doing stuff like
ubyte a = 200;
ubyte b = 100;
ubyte c = (a+b)&0xff;
or something like that, so the expression is specifically
proven to fit in the byte with compile time facts.
`(a+b)&0xff` What is this syntax?! Could you give a link to
this in the D documentation? I am not even sure how to look it
up...
& is the normal binary and operation, same in C, C++, Java, ...
0xFF is a hexadecimal constant (255), which the compiler knows
fit in an ubyte
So what do you not understand about this syntax?