Explorar o código

do not define static_assert macro for pre-C11 compilers

some software simply uses static_assert if the macro is defined, and
this breaks if the compiler does not recognize the _Static_assert
keyword used to define it.
Rich Felker %!s(int64=9) %!d(string=hai) anos
pai
achega
0ed932f34f
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      include/assert.h

+ 1 - 1
include/assert.h

@@ -8,7 +8,7 @@
 #define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0)))
 #endif
 
-#ifndef __cplusplus
+#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus)
 #define static_assert _Static_assert
 #endif