From 17ac98ef4f759be65e12450485024617eacb128c Mon Sep 17 00:00:00 2001 From: Reece Wilson Date: Tue, 25 Jan 2022 00:56:12 +0000 Subject: [PATCH] Sugar [*] enum values 'eEnumInvalid' and 'eEnumCount' are reserved. rationale -> it's easy to work around, now we don't have to switch between enum 'k' and 'e' conventions --- Include/AuroraEnum.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Include/AuroraEnum.hpp b/Include/AuroraEnum.hpp index 357cc19..55c5775 100644 --- a/Include/AuroraEnum.hpp +++ b/Include/AuroraEnum.hpp @@ -78,7 +78,7 @@ // API /////////////////////////////////////////////////////////////////////////////////////////// -#define AUE_DEFINE(name, vals) enum class name { AU_FOR_EACH(AUE_EMIT_ARRAY, AUE_STRIP_BRACKETS(vals)) kEnumCount }; \ +#define AUE_DEFINE(name, vals) enum class name { AU_FOR_EACH(AUE_EMIT_ARRAY, AUE_STRIP_BRACKETS(vals)) kEnumCount, kEnumInvalid = -1, eEnumInvalid = -1, eEnumCount = kEnumCount }; \ static inline const AuString k ## name ## ToString[static_cast(name::kEnumCount)] = { AU_FOR_EACH(AUE_EMIT_A, AUE_STRIP_BRACKETS(vals)) }; \ static inline const name k ## name ## Values[static_cast(name::kEnumCount)] = { AU_FOR_EACH_THAT(AUE_EMIT_D, name, AUE_STRIP_BRACKETS(vals)) }; \ inline const AuHashMap k ## name ## FromString = { AU_FOR_EACH_THAT(AUE_EMIT_PAIRNAME, name, AUE_STRIP_BRACKETS(vals)) {"kEnumCount", name::kEnumCount} }; \ @@ -100,7 +100,7 @@ #if defined(AUE_NOCPPSTL) #undef AUE_DEFINE - #define AUE_DEFINE(name, vals) enum class name { AU_FOR_EACH(AUE_EMIT_ARRAY, AUE_STRIP_BRACKETS(vals)) kEnumCount }; \ + #define AUE_DEFINE(name, vals) enum class name { AU_FOR_EACH(AUE_EMIT_ARRAY, AUE_STRIP_BRACKETS(vals)) kEnumCount, kEnumInvalid = -1, eEnumInvalid = -1, eEnumCount = kEnumCount }; \ static inline const char * k ## name ## ToString[static_cast(name::kEnumCount)] = { AU_FOR_EACH(AUE_EMIT_A, AUE_STRIP_BRACKETS(vals)) }; \ static inline const name k ## name ## Values[static_cast(name::kEnumCount)] = { AU_FOR_EACH_THAT(AUE_EMIT_D, name, AUE_STRIP_BRACKETS(vals)) }; \ static inline const char * name ## ToString(name val) { static const char * invalid = "kEnumCount"; if (static_cast(val) >= static_cast(name::kEnumCount)) return invalid; return k ## name ## ToString[static_cast(val)]; } \