Fixed JsonVariant::is<String>() (closes #763)

This commit is contained in:
Benoit Blanchon
2018-10-06 17:20:28 +02:00
parent fa1a40ac6e
commit 0b3af166ae
3 changed files with 6 additions and 2 deletions

View File

@ -6,6 +6,7 @@ HEAD
* Improved float serialization when `-fsingle-precision-constant` is used
* Fixed `JsonVariant::is<int>()` that returned true for empty strings
* Fixed `JsonVariant::is<String>()` (closes #763)
v5.13.2
-------

View File

@ -274,9 +274,11 @@ class JsonVariant : public Internals::JsonVariantBase<JsonVariant> {
//
// bool is<const char*>() const;
// bool is<char*>() const;
// bool is<std::string>() const;
template <typename T>
typename Internals::EnableIf<Internals::IsSame<T, const char *>::value ||
Internals::IsSame<T, char *>::value,
Internals::IsSame<T, char *>::value ||
Internals::StringTraits<T>::has_append,
bool>::type
is() const {
return variantIsString();
@ -352,4 +354,4 @@ DEPRECATED("Decimal places are ignored, use the double value instead")
inline JsonVariant double_with_n_digits(double value, uint8_t) {
return JsonVariant(value);
}
}
} // namespace ArduinoJson

View File

@ -58,6 +58,7 @@ void checkIsInteger(JsonVariant var) {
void checkIsString(JsonVariant var) {
REQUIRE(var.is<const char*>());
REQUIRE(var.is<std::string>());
REQUIRE_FALSE(var.is<bool>());
REQUIRE_FALSE(var.is<int>());