enum_option.hpp file
Generic compile-time enum-to-string and string-to-enum framework.
Provides a reusable pattern for mapping enum values to string names and back. Each enum defines a std::to_array<EnumEntry<E>> table and an ADL enum_entries(E) customization point; the generic templates perform the lookup.
Defining a named enum
enum class Colour : uint8_t { red, green, blue }; inline constexpr auto colour_entries = std::to_array<EnumEntry<Colour>>({ {.name = "red", .value = Colour::red}, {.name = "green", .value = Colour::green}, {.name = "blue", .value = Colour::blue}, }); constexpr auto enum_entries(Colour) noexcept { return std::span {colour_entries}; }
Using a named enum
auto c = enum_from_name<Colour>("green"); // std::optional<Colour> auto n = enum_name(Colour::blue); // std::string_view
Namespaces
- namespace gtopt
Classes
- struct gtopt::EnumEntry
- Name-value pair for an enumerator.