diff options
-rw-r--r-- | include/rapidjson/internal/biginteger.h | 4 | ||||
-rw-r--r-- | include/rapidjson/internal/diyfp.h | 4 | ||||
-rw-r--r-- | include/rapidjson/reader.h | 2 | ||||
-rw-r--r-- | test/unittest/readertest.cpp | 38 |
4 files changed, 28 insertions, 20 deletions
diff --git a/include/rapidjson/internal/biginteger.h b/include/rapidjson/internal/biginteger.h index 514a1769..af487380 100644 --- a/include/rapidjson/internal/biginteger.h +++ b/include/rapidjson/internal/biginteger.h @@ -19,7 +19,11 @@ #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_M_AMD64) #include <intrin.h> // for _umul128 +#if !defined(_ARM64EC_) #pragma intrinsic(_umul128) +#else +#pragma comment(lib,"softintrin") +#endif #endif RAPIDJSON_NAMESPACE_BEGIN diff --git a/include/rapidjson/internal/diyfp.h b/include/rapidjson/internal/diyfp.h index a40797ec..f7d46539 100644 --- a/include/rapidjson/internal/diyfp.h +++ b/include/rapidjson/internal/diyfp.h @@ -25,7 +25,11 @@ #if defined(_MSC_VER) && defined(_M_AMD64) && !defined(__INTEL_COMPILER) #include <intrin.h> +#if !defined(_ARM64EC_) #pragma intrinsic(_umul128) +#else +#pragma comment(lib,"softintrin") +#endif #endif RAPIDJSON_NAMESPACE_BEGIN diff --git a/include/rapidjson/reader.h b/include/rapidjson/reader.h index 542b7c00..b37afffb 100644 --- a/include/rapidjson/reader.h +++ b/include/rapidjson/reader.h @@ -1694,7 +1694,7 @@ private: } else { SizeType numCharsToCopy = static_cast<SizeType>(s.Length()); - GenericStringStream<UTF8<NumberCharacter>> srcStream(s.Pop()); + GenericStringStream<UTF8<NumberCharacter> > srcStream(s.Pop()); StackStream<typename TargetEncoding::Ch> dstStream(stack_); while (numCharsToCopy--) { Transcoder<UTF8<typename TargetEncoding::Ch>, TargetEncoding>::Transcode(srcStream, dstStream); diff --git a/test/unittest/readertest.cpp b/test/unittest/readertest.cpp index 057940fa..f828dbbe 100644 --- a/test/unittest/readertest.cpp +++ b/test/unittest/readertest.cpp @@ -2054,61 +2054,61 @@ struct NumbersAsStringsHandlerWChar_t { TEST(Reader, NumbersAsStringsWChar_t) { { const wchar_t* json = L"{ \"pi\": 3.1416 } "; - GenericStringStream<UTF16<>> s(json); + GenericStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"3.1416"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseNumbersAsStringsFlag>(s, h)); } { wchar_t* json = StrDup(L"{ \"pi\": 3.1416 } "); - GenericInsituStringStream<UTF16<>> s(json); + GenericInsituStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"3.1416"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseInsituFlag | kParseNumbersAsStringsFlag>(s, h)); free(json); } { const wchar_t* json = L"{ \"gigabyte\": 1.0e9 } "; - GenericStringStream<UTF16<>> s(json); + GenericStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"1.0e9"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseNumbersAsStringsFlag>(s, h)); } { wchar_t* json = StrDup(L"{ \"gigabyte\": 1.0e9 } "); - GenericInsituStringStream<UTF16<>> s(json); + GenericInsituStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"1.0e9"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseInsituFlag | kParseNumbersAsStringsFlag>(s, h)); free(json); } { const wchar_t* json = L"{ \"pi\": 314.159e-2 } "; - GenericStringStream<UTF16<>> s(json); + GenericStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"314.159e-2"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseNumbersAsStringsFlag>(s, h)); } { wchar_t* json = StrDup(L"{ \"gigabyte\": 314.159e-2 } "); - GenericInsituStringStream<UTF16<>> s(json); + GenericInsituStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"314.159e-2"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseInsituFlag | kParseNumbersAsStringsFlag>(s, h)); free(json); } { const wchar_t* json = L"{ \"negative\": -1.54321 } "; - GenericStringStream<UTF16<>> s(json); + GenericStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"-1.54321"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseNumbersAsStringsFlag>(s, h)); } { wchar_t* json = StrDup(L"{ \"negative\": -1.54321 } "); - GenericInsituStringStream<UTF16<>> s(json); + GenericInsituStringStream<UTF16<> > s(json); NumbersAsStringsHandlerWChar_t h(L"-1.54321"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseInsituFlag | kParseNumbersAsStringsFlag>(s, h)); free(json); } @@ -2117,7 +2117,7 @@ TEST(Reader, NumbersAsStringsWChar_t) { std::wstringstream ss(json); WIStreamWrapper s(ss); NumbersAsStringsHandlerWChar_t h(L"314.159e-2"); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseNumbersAsStringsFlag>(s, h)); } { @@ -2126,9 +2126,9 @@ TEST(Reader, NumbersAsStringsWChar_t) { for(int i = 1; i < 320; i++) n1e319[i] = L'0'; n1e319[320] = L'\0'; - GenericStringStream<UTF16<>> s(n1e319); + GenericStringStream<UTF16<> > s(n1e319); NumbersAsStringsHandlerWChar_t h(n1e319); - GenericReader<UTF16<>, UTF16<>> reader; + GenericReader<UTF16<>, UTF16<> > reader; EXPECT_TRUE(reader.Parse<kParseNumbersAsStringsFlag>(s, h)); } } |