BitSet: Use direct initialization instead of c-style casts

This commit is contained in:
Dentomologist 2023-12-31 12:37:22 -08:00
parent 8ecc478662
commit abb484a101
1 changed files with 3 additions and 3 deletions

View File

@ -98,15 +98,15 @@ public:
constexpr BitSet(std::initializer_list<int> init) constexpr BitSet(std::initializer_list<int> init)
{ {
for (int bit : init) for (int bit : init)
m_val |= (IntTy)1 << bit; m_val |= IntTy{1} << bit;
} }
constexpr static BitSet AllTrue(size_t count) constexpr static BitSet AllTrue(size_t count)
{ {
return BitSet(count == sizeof(IntTy) * 8 ? ~(IntTy)0 : (((IntTy)1 << count) - 1)); return BitSet(count == sizeof(IntTy) * 8 ? ~IntTy{0} : ((IntTy{1} << count) - 1));
} }
Ref operator[](size_t bit) { return Ref(this, (IntTy)1 << bit); } Ref operator[](size_t bit) { return Ref(this, IntTy{1} << bit); }
constexpr const Ref operator[](size_t bit) const { return (*const_cast<BitSet*>(this))[bit]; } constexpr const Ref operator[](size_t bit) const { return (*const_cast<BitSet*>(this))[bit]; }
constexpr bool operator==(BitSet other) const { return m_val == other.m_val; } constexpr bool operator==(BitSet other) const { return m_val == other.m_val; }
constexpr bool operator!=(BitSet other) const { return m_val != other.m_val; } constexpr bool operator!=(BitSet other) const { return m_val != other.m_val; }