mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added a deprecation warning for is<char>() and is<char*>()
This commit is contained in:
		| @@ -31,6 +31,16 @@ TEST_CASE("Deprecated features") { | ||||
|     REQUIRE(v.as<char>() == '*'); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariant::is<char*>()") { | ||||
|     JsonVariant v = doc["s"]; | ||||
|     REQUIRE(v.is<char*>() == true); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariant::is<char>()") { | ||||
|     JsonVariant v = doc["c"]; | ||||
|     REQUIRE(v.is<char>() == true); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariant::set(char)") { | ||||
|     JsonVariant v = doc.to<JsonVariant>(); | ||||
|     v.set('*'); | ||||
| @@ -47,6 +57,16 @@ TEST_CASE("Deprecated features") { | ||||
|     REQUIRE(v.as<char>() == '*'); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariantConst::is<char*>()") { | ||||
|     JsonVariantConst v = doc["s"]; | ||||
|     REQUIRE(v.is<char*>() == true); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariantConst::is<char>()") { | ||||
|     JsonVariantConst v = doc["c"]; | ||||
|     REQUIRE(v.is<char>() == true); | ||||
|   } | ||||
|  | ||||
|   SECTION("MemberProxy::as<char*>()") { | ||||
|     REQUIRE(doc["s"].as<char*>() == s); | ||||
|   } | ||||
| @@ -60,6 +80,16 @@ TEST_CASE("Deprecated features") { | ||||
|     REQUIRE(doc["x"] == 42); | ||||
|   } | ||||
|  | ||||
|   SECTION("MemberProxy::is<char*>()") { | ||||
|     REQUIRE(doc["s"].is<char*>() == true); | ||||
|     REQUIRE(doc["c"].is<char*>() == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("MemberProxy::is<char>()") { | ||||
|     REQUIRE(doc["c"].is<char>() == true); | ||||
|     REQUIRE(doc["s"].is<char>() == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("ElementProxy::as<char*>()") { | ||||
|     REQUIRE(doc["a"][0].as<char*>() == s); | ||||
|   } | ||||
| @@ -72,4 +102,14 @@ TEST_CASE("Deprecated features") { | ||||
|     doc["a"][0].set('*'); | ||||
|     REQUIRE(doc["a"][0] == 42); | ||||
|   } | ||||
|  | ||||
|   SECTION("ElementProxy::is<char*>()") { | ||||
|     REQUIRE(doc["a"][0].is<char*>() == true); | ||||
|     REQUIRE(doc["a"][1].is<char*>() == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("ElementProxy::is<char>()") { | ||||
|     REQUIRE(doc["a"][1].is<char>() == true); | ||||
|     REQUIRE(doc["a"][0].is<char>() == false); | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -123,10 +123,28 @@ class VariantRef : public VariantRefBase<VariantData>, | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE bool is() const { | ||||
|   FORCE_INLINE | ||||
|       typename enable_if<!is_same<T, char *>::value && !is_same<T, char>::value, | ||||
|                          bool>::type | ||||
|       is() const { | ||||
|     return Converter<T>::checkJson(*this); | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE typename enable_if<is_same<T, char *>::value, bool>::type | ||||
|   ARDUINOJSON_DEPRECATED("Replace is<char*>() with is<const char*>()") | ||||
|       is() const { | ||||
|     return is<const char *>(); | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE typename enable_if<is_same<T, char>::value, bool>::type | ||||
|   ARDUINOJSON_DEPRECATED( | ||||
|       "Support for char is deprecated, use int8_t or uint8_t instead") | ||||
|       is() const { | ||||
|     return is<signed char>(); | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE operator T() const { | ||||
|     return as<T>(); | ||||
| @@ -251,10 +269,28 @@ class VariantConstRef : public VariantRefBase<const VariantData>, | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE bool is() const { | ||||
|   FORCE_INLINE | ||||
|       typename enable_if<!is_same<T, char *>::value && !is_same<T, char>::value, | ||||
|                          bool>::type | ||||
|       is() const { | ||||
|     return Converter<T>::checkJson(*this); | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE typename enable_if<is_same<T, char *>::value, bool>::type | ||||
|   ARDUINOJSON_DEPRECATED("Replace is<char*>() with is<const char*>()") | ||||
|       is() const { | ||||
|     return is<const char *>(); | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE typename enable_if<is_same<T, char>::value, bool>::type | ||||
|   ARDUINOJSON_DEPRECATED( | ||||
|       "Support for char is deprecated, use int8_t or uint8_t instead") | ||||
|       is() const { | ||||
|     return is<signed char>(); | ||||
|   } | ||||
|  | ||||
|   template <typename T> | ||||
|   FORCE_INLINE operator T() const { | ||||
|     return as<T>(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user