diff --git a/README.md b/README.md index f7e347b..217f5f3 100644 --- a/README.md +++ b/README.md @@ -61,11 +61,6 @@ Header-only C++17 library provides static reflection for enums, work with any en ## [Examples](example/example.cpp) -```cpp -// For example color enum. -enum class Color { RED = 2, BLUE = 4, GREEN = 8 }; -``` - * Enum value to string ```cpp @@ -82,6 +77,8 @@ enum class Color { RED = 2, BLUE = 4, GREEN = 8 }; if (color.has_value()) { // color.value() -> Color::GREEN } + + auto color_or_default = magic_enum::enum_cast(value).value_or(Color::NONE); ``` * Integer to enum value @@ -90,16 +87,18 @@ enum class Color { RED = 2, BLUE = 4, GREEN = 8 }; int color_integer = 2; auto color = magic_enum::enum_cast(color_integer); if (color.has_value()) { - // color.value() -> Color::RED + // color.value() -> Color::BLUE } + + auto color_or_default = magic_enum::enum_cast(value).value_or(Color::NONE); ``` * Indexed access to enum value ```cpp - std::size_t i = 1; + std::size_t i = 0; Color color = magic_enum::enum_value(i); - // color -> Color::BLUE + // color -> Color::RED ``` * Enum value sequence @@ -122,7 +121,7 @@ enum class Color { RED = 2, BLUE = 4, GREEN = 8 }; ```cpp Color color = Color::RED; auto color_integer = magic_enum::enum_integer(color); - // color -> 2 + // color -> 1 ``` * Enum names sequence diff --git a/doc/reference.md b/doc/reference.md index 4ebdbf6..493c233 100644 --- a/doc/reference.md +++ b/doc/reference.md @@ -93,6 +93,8 @@ constexpr optional enum_cast(string_view value, BinaryPredicate p) noexcept(i if (color.has_value()) { // color.value() -> Color::GREEN } + + auto color_or_default = magic_enum::enum_cast(value).value_or(Color::NONE); ``` * Integer to enum value. @@ -103,6 +105,8 @@ constexpr optional enum_cast(string_view value, BinaryPredicate p) noexcept(i if (color.has_value()) { // color.value() -> Color::RED } + + auto color_or_default = magic_enum::enum_cast(value).value_or(Color::NONE); ``` ## `enum_value`