Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/miloyip/rapidjson.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrega <philipp.stefan.womser@sap.com>2021-08-10 11:12:29 +0300
committerKyrega <philipp.stefan.womser@sap.com>2021-08-10 18:37:35 +0300
commit8710d7e9893e826001c4de7c45e247d9a0084e78 (patch)
treebd2472ffa24e5003d2a61f19410e2c5d6fcedbf0
parente0512e0944792368f377cfee2b95e9e959eefd70 (diff)
Do not depend on c++11 conditional
-rw-r--r--include/rapidjson/reader.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/include/rapidjson/reader.h b/include/rapidjson/reader.h
index a4e5b3b0..906f6575 100644
--- a/include/rapidjson/reader.h
+++ b/include/rapidjson/reader.h
@@ -1464,9 +1464,24 @@ private:
RAPIDJSON_FORCEINLINE Ch Take() { return Base::TakePush(); }
};
+ template <bool test>
+ struct NumberCharacterConditional {
+ typedef char type;
+ };
+
+ template<>
+ struct NumberCharacterConditional<true> {
+ typedef typename TargetEncoding::Ch type;
+ };
+
+ template<>
+ struct NumberCharacterConditional<false> {
+ typedef char type;
+ };
+
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseNumber(InputStream& is, Handler& handler) {
- typedef typename std::conditional<(parseFlags & kParseNumbersAsStringsFlag) != 0, typename TargetEncoding::Ch, char>::type NumberCharacter;
+ typedef NumberCharacterConditional<(parseFlags& kParseNumbersAsStringsFlag) != 0 >::type NumberCharacter;
internal::StreamLocalCopy<InputStream> copy(is);
NumberStream<InputStream, NumberCharacter,