]> pd.if.org Git - pdclib/blobdiff - internals/_PDCLIB_aux.h
Add nothrow annotations where appropriate
[pdclib] / internals / _PDCLIB_aux.h
index e7e908a66e413d70cee645fc2ad26b8e0749049d..5183c9fdc3c08d6ef7759097178391d555b96dac 100644 (file)
        #define _PDCLIB_inline   inline
 #endif
 
+#if _PDCLIB_CXX_VERSION >= 2011
+  #define _PDCLIB_nothrow     noexcept
+  #define _PDCLIB_noexcept(x) noexcept(x)
+#elif _PDCLIB_CXX_VERSION
+  #define _PDCLIB_nothrow     throw()
+  #define _PDCLIB_noexcept
+#endif
+
 #if _PDCLIB_CXX_VERSION >= 2011
   // Hold off on C++ attribute syntax for now
   // #define _PDCLIB_noreturn [[noreturn]]
@@ -71,9 +79,9 @@
 #endif
 
 #ifdef __GNUC__
-       #ifndef _PDCLIB_EXPORT
-               #define _PDCLIB_EXPORT __attribute__((__visibility__("protected")))
-       #endif
+         #ifndef _PDCLIB_EXPORT
+           #define _PDCLIB_EXPORT __attribute__((__visibility__("protected")))
+    #endif
 
        #ifndef _PDCLIB_IMPORT
                #define _PDCLIB_IMPORT
                #define _PDCLIB_HIDDEN __attribute__((__visibility__("hidden")))
        #endif
 
+    #ifndef _PDCLIB_nothrow
+      #define _PDCLIB_nothrow __attribute__((__nothrow__))
+      #define _PDCLIB_noexcept
+    #endif
+
        #ifndef _PDCLIB_restrict
                #define _PDCLIB_restrict __restrict
        #endif
        #endif
 #endif
 
+#ifndef _PDCLIB_nothrow
+  #define _PDCLIB_nothrow
+  #define _PDCLIB_noexcept
+#endif
+
 #ifndef _PDCLIB_EXPORT
        #define _PDCLIB_EXPORT
 #endif
     #endif
 #endif
 
-#endif
\ No newline at end of file
+#endif