src/chess/rules.h

changeset 227
447d1e192807
parent 224
93e0e89496fe
--- a/src/chess/rules.h	Tue Sep 08 22:35:50 2026 +0200
+++ b/src/chess/rules.h	Thu Sep 10 09:35:41 2026 +0200
@@ -51,16 +51,17 @@
 
 #ifdef __cplusplus
 extern "C" {
+#endif
+
+#if defined(__cplusplus) || \
+    (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202310L)
 #define enum_byte(name) enum e##name : uint8_t
 #define typedef_enum_byte(name) typedef enum e##name name
-#elif __STDC_VERSION__ < 202310L
+#else
 /* since #warning is also a C23 feature, the only hope is this: */
 #pragma GCC warning "Type safety for enums is only available since C23"
 #define enum_byte(name) enum e##name
 #define typedef_enum_byte(name) typedef uint8_t name
-#else
-#define enum_byte(name) enum e##name : uint8_t
-#define typedef_enum_byte(name) typedef enum e##name name
 #endif
 
 #define ENPASSANT_THREAT 0x40u

mercurial