26 #define MAGIC_ENUM_ENABLE_HASH
32 constexpr std::string_view
DoWork() {
37 constexpr std::string_view DoWork<Color::GREEN>() {
42 template <
typename... Ts>
struct overloaded : Ts... {
using Ts::operator()...; };
48 auto lambda = [] (
auto value) {
49 std::cout << DoWork<value>() << std::endl;
75 return "called with green argument";
79 return "default: " + std::string{name};
83 std::cout << magic_enum::enum_switch<std::string>(switcher2,
Color::GREEN) << std::endl;
84 std::cout << magic_enum::enum_switch<std::string>(switcher2,
Color::RED) << std::endl;
86 auto empty = magic_enum::enum_switch<std::string>(switcher2,
static_cast<Color>(-3));
87 assert(empty.empty());
90 std::cout << magic_enum::enum_switch<std::string>(switcher2,
static_cast<Color>(-3),
"unrecognized") << std::endl;