aboutsummaryrefslogtreecommitdiff
path: root/include/cru/base
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/base')
-rw-r--r--include/cru/base/Bitmask.h4
-rw-r--r--include/cru/base/StringToNumberConverter.h10
2 files changed, 8 insertions, 6 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; }
diff --git a/include/cru/base/StringToNumberConverter.h b/include/cru/base/StringToNumberConverter.h
index 051f44d0..64c29971 100644
--- a/include/cru/base/StringToNumberConverter.h
+++ b/include/cru/base/StringToNumberConverter.h
@@ -14,15 +14,15 @@ using StringToNumberFlag = Bitmask<details::StringToNumberFlagTag>;
struct StringToNumberFlags {
constexpr static StringToNumberFlag kAllowLeadingSpaces =
- StringToNumberFlag::FromOffset(0);
- constexpr static StringToNumberFlag kAllowTrailingSpaces =
StringToNumberFlag::FromOffset(1);
- constexpr static StringToNumberFlag kAllowTrailingJunk =
+ constexpr static StringToNumberFlag kAllowTrailingSpaces =
StringToNumberFlag::FromOffset(2);
- constexpr static StringToNumberFlag kAllowLeadingZeroForInteger =
+ constexpr static StringToNumberFlag kAllowTrailingJunk =
StringToNumberFlag::FromOffset(3);
- constexpr static StringToNumberFlag kThrowOnError =
+ constexpr static StringToNumberFlag kAllowLeadingZeroForInteger =
StringToNumberFlag::FromOffset(4);
+ constexpr static StringToNumberFlag kThrowOnError =
+ StringToNumberFlag::FromOffset(5);
};
template <typename TResult>