Procházet zdrojové kódy

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 před 9 roky
rodič
revize
0ed932f34f
1 změnil soubory, kde provedl 1 přidání a 1 odebrání
  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