How are the bitwise shifts defined on low level types?  In particular,
for right shift, does high bit extension or zero fill occur?  Does the
answer depend on whether the low level type is signed or not?

On the flip side, it seems more useful if we have both operators
available for either signed or unsigned types, to avoid having to do
pointless casting just to change the meaning of +>.  Perhaps having both
+> and ?> operators?  Since "coerce to boolean and then right shift" is
meaningless, this seems ripe to DWIM.  (For me, DWIM here means "+> does
high bit extension, ?> does zero fill".)


Reply via email to