]> pd.if.org Git - pdclib/blobdiff - internals/_PDCLIB_aux.h
Add nothrow annotations where appropriate
[pdclib] / internals / _PDCLIB_aux.h
index 8990ed8da1faa443c1e9a7b10821db1fdc52724b..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
 #define _PDCLIB_CXX_MAX(max)     _PDCLIB_CXX_MINMAX(0, max)
 #define _PDCLIB_XOPEN_MAX(max) _PDCLIB_XOPEN_MINMAX(0, max)
 #define _PDCLIB_POSIX_MAX(max) _PDCLIB_POSIX_MINMAX(0, max)
-#if defined(_PDCLIB_ALL) || defined(_PDCLIB_BUILD)
+#if defined(_PDCLIB_EXTENSIONS) || defined(_PDCLIB_BUILD)
     #define _PDCLIB_C_MINMAX(min, max) 1
     #define _PDCLIB_CXX_MINMAX(min, max) 1
     #define _PDCLIB_POSIX_MINMAX(min, max) 1
     #endif
 #endif
 
-#endif
\ No newline at end of file
+#endif