1
0
Fork 0
mirror of https://github.com/Neargye/magic_enum.git synced 2026-01-10 23:44:29 +00:00
This commit is contained in:
neargye 2022-10-11 19:01:04 +04:00
parent 1b1194bcd5
commit 159a35006d
2 changed files with 12 additions and 9 deletions

View file

@ -61,11 +61,6 @@ Header-only C++17 library provides static reflection for enums, work with any en
## [Examples](example/example.cpp) ## [Examples](example/example.cpp)
```cpp
// For example color enum.
enum class Color { RED = 2, BLUE = 4, GREEN = 8 };
```
* Enum value to string * Enum value to string
```cpp ```cpp
@ -82,6 +77,8 @@ enum class Color { RED = 2, BLUE = 4, GREEN = 8 };
if (color.has_value()) { if (color.has_value()) {
// color.value() -> Color::GREEN // color.value() -> Color::GREEN
} }
auto color_or_default = magic_enum::enum_cast<Color>(value).value_or(Color::NONE);
``` ```
* Integer to enum value * Integer to enum value
@ -90,16 +87,18 @@ enum class Color { RED = 2, BLUE = 4, GREEN = 8 };
int color_integer = 2; int color_integer = 2;
auto color = magic_enum::enum_cast<Color>(color_integer); auto color = magic_enum::enum_cast<Color>(color_integer);
if (color.has_value()) { if (color.has_value()) {
// color.value() -> Color::RED // color.value() -> Color::BLUE
} }
auto color_or_default = magic_enum::enum_cast<Color>(value).value_or(Color::NONE);
``` ```
* Indexed access to enum value * Indexed access to enum value
```cpp ```cpp
std::size_t i = 1; std::size_t i = 0;
Color color = magic_enum::enum_value<Color>(i); Color color = magic_enum::enum_value<Color>(i);
// color -> Color::BLUE // color -> Color::RED
``` ```
* Enum value sequence * Enum value sequence
@ -122,7 +121,7 @@ enum class Color { RED = 2, BLUE = 4, GREEN = 8 };
```cpp ```cpp
Color color = Color::RED; Color color = Color::RED;
auto color_integer = magic_enum::enum_integer(color); auto color_integer = magic_enum::enum_integer(color);
// color -> 2 // color -> 1
``` ```
* Enum names sequence * Enum names sequence

View file

@ -93,6 +93,8 @@ constexpr optional<E> enum_cast(string_view value, BinaryPredicate p) noexcept(i
if (color.has_value()) { if (color.has_value()) {
// color.value() -> Color::GREEN // color.value() -> Color::GREEN
} }
auto color_or_default = magic_enum::enum_cast<Color>(value).value_or(Color::NONE);
``` ```
* Integer to enum value. * Integer to enum value.
@ -103,6 +105,8 @@ constexpr optional<E> enum_cast(string_view value, BinaryPredicate p) noexcept(i
if (color.has_value()) { if (color.has_value()) {
// color.value() -> Color::RED // color.value() -> Color::RED
} }
auto color_or_default = magic_enum::enum_cast<Color>(value).value_or(Color::NONE);
``` ```
## `enum_value` ## `enum_value`