|
@@ -354,8 +354,14 @@ typedef uint64_t Uint64;
|
|
|
#endif
|
|
|
#endif /* SDL_DISABLE_ANALYZE_MACROS */
|
|
|
|
|
|
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
|
|
|
+#define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x);
|
|
|
+#elif defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
|
+#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x);
|
|
|
+#else /* universal, but may trigger -Wunused-local-typedefs */
|
|
|
#define SDL_COMPILE_TIME_ASSERT(name, x) \
|
|
|
typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1]
|
|
|
+#endif
|
|
|
/** \cond */
|
|
|
#ifndef DOXYGEN_SHOULD_IGNORE_THIS
|
|
|
SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
|