simplify enum-based data type definitions

Thu, 10 Sep 2026 09:35:41 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 10 Sep 2026 09:35:41 +0200
changeset 227
447d1e192807
parent 226
341080f6bf34
child 228
13b934b7d03e

simplify enum-based data type definitions

src/chess/rules.h file | annotate | diff | comparison | revisions
--- 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