|
@@ -376,7 +376,12 @@ typedef uint64_t Uint64;
|
|
|
#endif /* SDL_DISABLE_ANALYZE_MACROS */
|
|
|
|
|
|
#ifndef SDL_COMPILE_TIME_ASSERT
|
|
|
-#if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L)
|
|
|
+#if defined(__cplusplus)
|
|
|
+/* Keep C++ case alone: Some versions of gcc will define __STDC_VERSION__ even when compiling in C++ mode. */
|
|
|
+#if (__cplusplus >= 201103L)
|
|
|
+#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x)
|
|
|
+#endif
|
|
|
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L)
|
|
|
#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x)
|
|
|
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
|
|
|
#define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x)
|