12 constexpr EnumStringMap(
const std::array<std::pair<Enum, const char*>, N>& init) : stringList_() {
13 for (std::size_t i = 0; i < N; ++i) {
14 const auto& p = init[i];
15 stringList_[
static_cast<std::underlying_type_t<Enum>
>(p.first)] = p.second;
19 constexpr const char* operator()(Enum a) {
return stringList_[
static_cast<std::underlying_type_t<Enum>
>(a)]; }
23 for (
int i = 0; i < N; i++) {
24 if (!strcmp(str, stringList_[i])) {
25 return static_cast<Enum
>(i);
30 D_PRINTLN(popup,
"no match for:%s", str);
32 return static_cast<Enum
>(N);
36 const char* stringList_[N];
constexpr Enum operator()(const char *str)
Convert string to enum, returning enum variant N on failure.
Definition enum_to_string_map.hpp:22