diff options
author | Kyrega <philipp.stefan.womser@sap.com> | 2021-08-10 11:12:29 +0300 |
---|---|---|
committer | Kyrega <philipp.stefan.womser@sap.com> | 2021-08-10 18:37:35 +0300 |
commit | 8710d7e9893e826001c4de7c45e247d9a0084e78 (patch) | |
tree | bd2472ffa24e5003d2a61f19410e2c5d6fcedbf0 | |
parent | e0512e0944792368f377cfee2b95e9e959eefd70 (diff) |
Do not depend on c++11 conditional
-rw-r--r-- | include/rapidjson/reader.h | 17 |
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, |