43 constexpr
auto names = magic_enum::enum_names<Color>();
45 for (
const auto&
n :
names) {
52 auto c2 = magic_enum::enum_cast<Color>(
"BLUE");
64 auto c3 = magic_enum::enum_cast<Color>(10);
71 std::cout <<
"RED = " << c4_integer << std::endl;
73 using magic_enum::iostream_operators::operator<<;
75 std::cout <<
"Color: " << c1 <<
" " << c2 <<
" " << c3 << std::endl;
78 std::cout <<
"Color enum size: " << magic_enum::enum_count<Color>() << std::endl;
81 std::cout <<
"Color[0] = " << magic_enum::enum_value<Color>(0) << std::endl;
84 constexpr
auto values = magic_enum::enum_values<Color>();
86 for (
const auto c :
values) {
92 enum class Flags { A = 1, B = 2, C = 4, D = 8 };
95 Flags flag = Flags::A | Flags::C;
98 enum color { red, green, blue };
101 static_assert(magic_enum::is_unscoped_enum_v<color>);
102 static_assert(!magic_enum::is_unscoped_enum_v<Color>);
103 static_assert(!magic_enum::is_unscoped_enum_v<Flags>);
106 static_assert(!magic_enum::is_scoped_enum_v<color>);
107 static_assert(magic_enum::is_scoped_enum_v<Color>);
108 static_assert(magic_enum::is_scoped_enum_v<Flags>);
111 constexpr
auto entries = magic_enum::enum_entries<Color>();
113 for (
const auto& e :
entries) {
114 std::cout <<
" " << e.second <<
" = " <<
static_cast<int>(e.first);