Make ENUM_STRING function static

`ENUM_STRING` can be used inside a `class`/`struct`/`union` for `enum`s contained within them. Making the function `static` allows doing this and doesn't require supplying a `this` pointer of the enclosing class for usage.
This commit is contained in:
PixelyIon 2021-11-16 19:24:56 +05:30
parent c2a6da6431
commit 4b9f99bb27

View File

@ -14,14 +14,14 @@
* @brief Creates a function to convert an enumerant to its string representation at runtime
* @example ENUM_STRING(Example, { ENUM_CASE(A); ENUM_CASE(B); })
*/
#define ENUM_STRING(name, cases) \
constexpr const char *ToString(name value) { \
using ENUM_TYPE = name; \
switch (value) { \
cases \
default: \
return "Unknown"; \
} \
#define ENUM_STRING(name, cases) \
constexpr static const char *ToString(name value) { \
using ENUM_TYPE = name; \
switch (value) { \
cases \
default: \
return "Unknown"; \
} \
}
/**
@ -29,7 +29,7 @@
*/
#define ENUM_CASE_PAIR(key, value) \
case ENUM_TYPE::key: \
return value
return value
/**
* @brief Creates a switch case statement to convert an enumerant to the given values