aboutsummaryrefslogtreecommitdiff
path: root/include/cru/base/Bitmask.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/base/Bitmask.h')
-rw-r--r--include/cru/base/Bitmask.h4
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; }