0027113: Coding - add macros Standard_DEPRECATED for marking deprecated functionality
authorkgv <kgv@opencascade.com>
Sat, 30 Jan 2016 11:54:12 +0000 (14:54 +0300)
committerabv <abv@opencascade.com>
Sat, 20 Feb 2016 07:10:09 +0000 (10:10 +0300)
Macro Standard_DEPRECATED("message") can be used in declarations to mark a method deprecated and generate compiler warning when it is used.
If OCCT_NO_DEPRECATED is defined, Standard_DEPRECATED is disabled (defined empty).

src/Standard/Standard_Macro.hxx

index d7be331..1d2a267 100644 (file)
   #define Standard_OVERRIDE
 #endif
 
+// Macro Standard_DEPRECATED("message") can be used to declare a method deprecated.
+// If OCCT_NO_DEPRECATED is defined, Standard_DEPRECATED is defined empty.
+#ifdef OCCT_NO_DEPRECATED
+  #define Standard_DEPRECATED(theMsg)
+#else
+#if defined(_MSC_VER)
+  #define Standard_DEPRECATED(theMsg) __declspec(deprecated(theMsg))
+#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) || defined(__clang__))
+  #define Standard_DEPRECATED(theMsg) __attribute__((deprecated(theMsg)))
+#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+  #define Standard_DEPRECATED(theMsg) __attribute__((deprecated))
+#else
+  #define Standard_DEPRECATED(theMsg)
+#endif
+#endif
+
 //======================================================
 // Windows-specific definitions
 //======================================================