From af3bb131c8d1d8691b5024a88d456aa47e903352 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Wed, 19 May 2021 15:07:59 +0200 Subject: [PATCH] Fixed error Pe070 "incomplete type is not allowed" on IAR (fixes #1560) --- CHANGELOG.md | 1 + src/ArduinoJson/Variant/VariantImpl.hpp | 5 +++++ src/ArduinoJson/Variant/VariantRef.hpp | 6 ++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18417919..a3b1fb1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ HEAD ---- * Fixed support for `volatile float` and `volatile double` (issue #1557) +* Fixed error `[Pe070]: incomplete type is not allowed` on IAR (issue #1560) v6.18.0 (2021-05-05) ------- diff --git a/src/ArduinoJson/Variant/VariantImpl.hpp b/src/ArduinoJson/Variant/VariantImpl.hpp index b91e5845..ea49a92f 100644 --- a/src/ArduinoJson/Variant/VariantImpl.hpp +++ b/src/ArduinoJson/Variant/VariantImpl.hpp @@ -140,4 +140,9 @@ inline VariantConstRef operator|(VariantConstRef preferedValue, VariantConstRef defaultValue) { return preferedValue ? preferedValue : defaultValue; } + +// Out of class definition to avoid #1560 +inline bool VariantRef::set(char value) const { + return set(value); +} } // namespace ARDUINOJSON_NAMESPACE diff --git a/src/ArduinoJson/Variant/VariantRef.hpp b/src/ArduinoJson/Variant/VariantRef.hpp index 8d4c4108..10c3fdb7 100644 --- a/src/ArduinoJson/Variant/VariantRef.hpp +++ b/src/ArduinoJson/Variant/VariantRef.hpp @@ -88,11 +88,9 @@ class VariantRef : public VariantRefBase, return Converter::toJson(value, *this); } - FORCE_INLINE bool ARDUINOJSON_DEPRECATED( + bool ARDUINOJSON_DEPRECATED( "Support for char is deprecated, use int8_t or uint8_t instead") - set(char value) const { - return set(value); - } + set(char value) const; template FORCE_INLINE bool set(T *value) const {