import checkedint.noex : smartOp; // use IntFlagPolicy.noex
assert(smartOp.modPow2( 101,  1) ==  1);
assert(smartOp.modPow2( 101,  3) ==  5);
assert(smartOp.modPow2(-101,  3) == -5);
assert(smartOp.modPow2(101, -2) ==  0);
assert(smartOp.modPow2(101, 1_000) == 101);
Equivalent to left % pow(2, exp), but faster and works with a wider range of inputs. This is a safer alternative to left & ((1 << exp) - 1) that is still very fast.