Просмотр исходного кода

Renamed DEPRECATED to ARDUINOJSON_DEPRECATED

Benoit Blanchon 4 лет назад
Родитель
Сommit
ab23625091

+ 2 - 8
extras/tests/Misc/deprecated.cpp

@@ -2,17 +2,11 @@
 // Copyright Benoit Blanchon 2014-2021
 // MIT License
 
+#define ARDUINOJSON_DEPRECATED(msg)  // nothing
+
 #include <ArduinoJson.h>
 #include <catch.hpp>
 
-#if defined(__GNUC__)
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(disable : 4996)  // deprecation warning
-#endif
-
 TEST_CASE("Deprecated features") {
   StaticJsonDocument<256> doc;
   const char* s = "hello";

+ 2 - 1
src/ArduinoJson/Array/ElementProxy.hpp

@@ -72,7 +72,8 @@ class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
 
   template <typename T>
   FORCE_INLINE typename enable_if<is_same<T, char*>::value, const char*>::type
-  DEPRECATED("Replace as<char*>() with as<const char*>()") as() const {
+  ARDUINOJSON_DEPRECATED("Replace as<char*>() with as<const char*>()")
+      as() const {
     return as<const char*>();
   }
 

+ 2 - 1
src/ArduinoJson/Object/MemberProxy.hpp

@@ -75,7 +75,8 @@ class MemberProxy : public VariantOperators<MemberProxy<TObject, TStringRef> >,
 
   template <typename T>
   FORCE_INLINE typename enable_if<is_same<T, char *>::value, const char *>::type
-  DEPRECATED("Replace as<char*>() with as<const char*>()") as() const {
+  ARDUINOJSON_DEPRECATED("Replace as<char*>() with as<const char*>()")
+      as() const {
     return as<const char *>();
   }
 

+ 13 - 4
src/ArduinoJson/Polyfills/attributes.hpp

@@ -8,23 +8,32 @@
 
 #define FORCE_INLINE  // __forceinline causes C4714 when returning std::string
 #define NO_INLINE __declspec(noinline)
-#define DEPRECATED(msg) __declspec(deprecated(msg))
+
+#ifndef ARDUINOJSON_DEPRECATED
+#define ARDUINOJSON_DEPRECATED(msg) __declspec(deprecated(msg))
+#endif
 
 #elif defined(__GNUC__)  // GCC or Clang
 
 #define FORCE_INLINE __attribute__((always_inline))
 #define NO_INLINE __attribute__((noinline))
+
+#ifndef ARDUINOJSON_DEPRECATED
 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-#define DEPRECATED(msg) __attribute__((deprecated(msg)))
+#define ARDUINOJSON_DEPRECATED(msg) __attribute__((deprecated(msg)))
 #else
-#define DEPRECATED(msg) __attribute__((deprecated))
+#define ARDUINOJSON_DEPRECATED(msg) __attribute__((deprecated))
+#endif
 #endif
 
 #else  // Other compilers
 
 #define FORCE_INLINE
 #define NO_INLINE
-#define DEPRECATED(msg)
+
+#ifndef ARDUINOJSON_DEPRECATED
+#define ARDUINOJSON_DEPRECATED(msg)
+#endif
 
 #endif
 

+ 4 - 2
src/ArduinoJson/Variant/VariantRef.hpp

@@ -101,7 +101,8 @@ class VariantRef : public VariantRefBase<VariantData>,
 
   template <typename T>
   FORCE_INLINE typename enable_if<is_same<T, char *>::value, const char *>::type
-  DEPRECATED("Replace as<char*>() with as<const char*>()") as() const {
+  ARDUINOJSON_DEPRECATED("Replace as<char*>() with as<const char*>()")
+      as() const {
     return as<const char *>();
   }
 
@@ -218,7 +219,8 @@ class VariantConstRef : public VariantRefBase<const VariantData>,
 
   template <typename T>
   FORCE_INLINE typename enable_if<is_same<T, char *>::value, const char *>::type
-  DEPRECATED("Replace as<char*>() with as<const char*>()") as() const {
+  ARDUINOJSON_DEPRECATED("Replace as<char*>() with as<const char*>()")
+      as() const {
     return as<const char *>();
   }