Merge pull request #1817 from lukedan/lukedan_cpp20

Fix #1721
This commit is contained in:
Milo Yip 2020-12-28 10:32:35 +08:00 committed by GitHub
commit 3cdd3c8370
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 13 deletions

View File

@ -2003,17 +2003,18 @@ private:
// Initial flags of different types. // Initial flags of different types.
kNullFlag = kNullType, kNullFlag = kNullType,
kTrueFlag = kTrueType | kBoolFlag, // These casts are added to suppress the warning on MSVC about bitwise operations between enums of different types.
kFalseFlag = kFalseType | kBoolFlag, kTrueFlag = static_cast<int>(kTrueType) | static_cast<int>(kBoolFlag),
kNumberIntFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag, kFalseFlag = static_cast<int>(kFalseType) | static_cast<int>(kBoolFlag),
kNumberUintFlag = kNumberType | kNumberFlag | kUintFlag | kUint64Flag | kInt64Flag, kNumberIntFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kIntFlag | kInt64Flag),
kNumberInt64Flag = kNumberType | kNumberFlag | kInt64Flag, kNumberUintFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kUintFlag | kUint64Flag | kInt64Flag),
kNumberUint64Flag = kNumberType | kNumberFlag | kUint64Flag, kNumberInt64Flag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kInt64Flag),
kNumberDoubleFlag = kNumberType | kNumberFlag | kDoubleFlag, kNumberUint64Flag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kUint64Flag),
kNumberAnyFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag | kUintFlag | kUint64Flag | kDoubleFlag, kNumberDoubleFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kDoubleFlag),
kConstStringFlag = kStringType | kStringFlag, kNumberAnyFlag = static_cast<int>(kNumberType) | static_cast<int>(kNumberFlag | kIntFlag | kInt64Flag | kUintFlag | kUint64Flag | kDoubleFlag),
kCopyStringFlag = kStringType | kStringFlag | kCopyFlag, kConstStringFlag = static_cast<int>(kStringType) | static_cast<int>(kStringFlag),
kShortStringFlag = kStringType | kStringFlag | kCopyFlag | kInlineStrFlag, kCopyStringFlag = static_cast<int>(kStringType) | static_cast<int>(kStringFlag | kCopyFlag),
kShortStringFlag = static_cast<int>(kStringType) | static_cast<int>(kStringFlag | kCopyFlag | kInlineStrFlag),
kObjectFlag = kObjectType, kObjectFlag = kObjectType,
kArrayFlag = kArrayType, kArrayFlag = kArrayType,

View File

@ -2038,8 +2038,13 @@ TEST(SchemaValidator, Ref_remote_issue1210) {
class SchemaDocumentProvider : public IRemoteSchemaDocumentProvider { class SchemaDocumentProvider : public IRemoteSchemaDocumentProvider {
SchemaDocument** collection; SchemaDocument** collection;
SchemaDocumentProvider(const SchemaDocumentProvider&); // Dummy private copy constructor & assignment operator.
SchemaDocumentProvider& operator=(const SchemaDocumentProvider&); // Function bodies added so that they compile in MSVC 2019.
SchemaDocumentProvider(const SchemaDocumentProvider&) : collection(NULL) {
}
SchemaDocumentProvider& operator=(const SchemaDocumentProvider&) {
return *this;
}
public: public:
SchemaDocumentProvider(SchemaDocument** collection) : collection(collection) { } SchemaDocumentProvider(SchemaDocument** collection) : collection(collection) { }