diff options
author | Xuanyi Zhou <zxy19980101@sina.cn> | 2020-12-27 07:09:39 +0300 |
---|---|---|
committer | Xuanyi Zhou <zxy19980101@sina.cn> | 2020-12-27 07:09:39 +0300 |
commit | 30069262310f27a48dd17d7358ba656c77d5a2fe (patch) | |
tree | b0827840b4fbf75971cc7520ad5cde79e0166238 | |
parent | 13f5ab4f443d158caf36cb06ff846f5bbb0b491f (diff) |
suppress enum bitwise operation warnings on msvc
-rw-r--r-- | include/rapidjson/document.h | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h index d514cc2e..533a9ad2 100644 --- a/include/rapidjson/document.h +++ b/include/rapidjson/document.h @@ -2003,17 +2003,18 @@ private: // Initial flags of different types. kNullFlag = kNullType, - kTrueFlag = kTrueType | kBoolFlag, - kFalseFlag = kFalseType | kBoolFlag, - kNumberIntFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag, - kNumberUintFlag = kNumberType | kNumberFlag | kUintFlag | kUint64Flag | kInt64Flag, - kNumberInt64Flag = kNumberType | kNumberFlag | kInt64Flag, - kNumberUint64Flag = kNumberType | kNumberFlag | kUint64Flag, - kNumberDoubleFlag = kNumberType | kNumberFlag | kDoubleFlag, - kNumberAnyFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag | kUintFlag | kUint64Flag | kDoubleFlag, - kConstStringFlag = kStringType | kStringFlag, - kCopyStringFlag = kStringType | kStringFlag | kCopyFlag, - kShortStringFlag = kStringType | kStringFlag | kCopyFlag | kInlineStrFlag, + // These casts are added to suppress the warning on MSVC about bitwise operations between enums of different types. + kTrueFlag = static_cast<int>(kTrueType) | static_cast<int>(kBoolFlag), + kFalseFlag = static_cast<int>(kFalseType) | static_cast<int>(kBoolFlag), + kNumberIntFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kIntFlag | kInt64Flag), + kNumberUintFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kUintFlag | kUint64Flag | kInt64Flag), + kNumberInt64Flag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kInt64Flag), + kNumberUint64Flag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kUint64Flag), + kNumberDoubleFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kDoubleFlag), + kNumberAnyFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kIntFlag | kInt64Flag | kUintFlag | kUint64Flag | kDoubleFlag), + kConstStringFlag = static_cast<int>(kStringType) | static_cast<int>(kStringFlag), + kCopyStringFlag = static_cast<int>(kStringType) | static_cast<int>(kStringFlag | kCopyFlag), + kShortStringFlag = static_cast<int>(kStringType) | static_cast<int>(kStringFlag | kCopyFlag | kInlineStrFlag), kObjectFlag = kObjectType, kArrayFlag = kArrayType, |