if (I == E) return *this;
- if (I / BITWORD_SIZE == (E-1) / BITWORD_SIZE) {
- BitWord EMask = 1 << (E % BITWORD_SIZE);
- BitWord IMask = 1 << (I % BITWORD_SIZE);
+ if (I / BITWORD_SIZE == E / BITWORD_SIZE) {
+ BitWord EMask = 1UL << (E % BITWORD_SIZE);
+ BitWord IMask = 1UL << (I % BITWORD_SIZE);
BitWord Mask = EMask - IMask;
Bits[I / BITWORD_SIZE] |= Mask;
return *this;
if (I == E) return *this;
- if (I / BITWORD_SIZE == (E-1) / BITWORD_SIZE) {
- BitWord EMask = 1 << (E % BITWORD_SIZE);
- BitWord IMask = 1 << (I % BITWORD_SIZE);
+ if (I / BITWORD_SIZE == E / BITWORD_SIZE) {
+ BitWord EMask = 1UL << (E % BITWORD_SIZE);
+ BitWord IMask = 1UL << (I % BITWORD_SIZE);
BitWord Mask = EMask - IMask;
Bits[I / BITWORD_SIZE] &= ~Mask;
return *this;
EXPECT_FALSE(D.test(0));
EXPECT_TRUE( D.test(1));
EXPECT_TRUE( D.test(2));
+
+ TypeParam E;
+ E.resize(128);
+ E.reset();
+ E.set(1, 33);
+
+ EXPECT_FALSE(E.test(0));
+ EXPECT_TRUE( E.test(1));
+ EXPECT_TRUE( E.test(32));
+ EXPECT_FALSE(E.test(33));
}
}
#endif