diff options
Diffstat (limited to 'include/cru/base/Bitmask.h')
-rw-r--r-- | include/cru/base/Bitmask.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/cru/base/Bitmask.h b/include/cru/base/Bitmask.h index 9b6b8957..7606f784 100644 --- a/include/cru/base/Bitmask.h +++ b/include/cru/base/Bitmask.h @@ -10,8 +10,10 @@ struct Bitmask final { constexpr Bitmask() : value(0) {} constexpr explicit Bitmask(TUnderlying value) : value(value) {} + // Start from 1. static constexpr Bitmask FromOffset(int offset) { - return Bitmask(static_cast<TUnderlying>(1u << offset)); + if (offset == 0) return {}; + return Bitmask(static_cast<TUnderlying>(1u << (offset - 1))); } constexpr bool Has(Bitmask rhs) const { return (value & rhs.value) != 0; } |