Use rapidjson internal::SelectIf

This commit is contained in:
Kyrega 2021-08-10 10:20:18 +02:00
parent 8710d7e989
commit 128b1031b0

View File

@ -1464,24 +1464,9 @@ 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 NumberCharacterConditional<(parseFlags& kParseNumbersAsStringsFlag) != 0 >::type NumberCharacter;
typedef typename internal::SelectIf<internal::BoolType<(parseFlags & kParseNumbersAsStringsFlag) != 0>, typename TargetEncoding::Ch, char>::Type NumberCharacter;
internal::StreamLocalCopy<InputStream> copy(is);
NumberStream<InputStream, NumberCharacter,