diff --git a/CHANGELOG.md b/CHANGELOG.md index e347e033..15f2add4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ HEAD * `deserializeMsgPack()` inserts `null` instead of returning `NotSupported` * Removed `DeserializationError::NotSupported` * Added `JsonVariant::is()` (issue #1412) -* Added `JsonVariant::is()` (issue #1412) +* Added `JsonVariant::is()` (issue #1412) > ### BREAKING CHANGES > diff --git a/extras/tests/JsonVariant/is.cpp b/extras/tests/JsonVariant/is.cpp index e2e046b4..fc7f9118 100644 --- a/extras/tests/JsonVariant/is.cpp +++ b/extras/tests/JsonVariant/is.cpp @@ -17,6 +17,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); + CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -27,6 +28,7 @@ TEST_CASE("JsonVariant::is()") { SECTION("null") { CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -42,6 +44,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == true); CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -56,6 +59,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == true); CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -75,6 +79,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == true); CHECK(variant.is() == true); CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -88,6 +93,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == true); CHECK(variant.is() == true); CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -104,6 +110,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == true); CHECK(variant.is() == true); CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -119,6 +126,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == true); CHECK(variant.is() == true); CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -134,6 +142,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == true); CHECK(variant.is() == true); CHECK(variant.is() == true); + CHECK(variant.is() == true); CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == false); @@ -142,6 +151,7 @@ TEST_CASE("JsonVariant::is()") { CHECK(variant.is() == false); CHECK(variant.is() == false); CHECK(variant.is() == true); + CHECK(variant.is() == true); } } diff --git a/src/ArduinoJson/Variant/VariantRef.hpp b/src/ArduinoJson/Variant/VariantRef.hpp index bee99e0a..3b0dfd34 100644 --- a/src/ArduinoJson/Variant/VariantRef.hpp +++ b/src/ArduinoJson/Variant/VariantRef.hpp @@ -121,6 +121,16 @@ class VariantRefBase : public VariantTag { is() const { return !!_data; } + // + // bool is const; + // bool is const; + template + FORCE_INLINE typename enable_if< + is_same::type, VariantConstRef>::value, + bool>::type + is() const { + return !!_data; + } #if ARDUINOJSON_HAS_NULLPTR // // bool is const;