From 92dfab4ac45c003131d202d2b2da133e0f732733 Mon Sep 17 00:00:00 2001 From: neargye Date: Mon, 30 Sep 2019 19:08:29 +0500 Subject: [PATCH] improve enum_value for dense enums --- include/magic_enum.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/magic_enum.hpp b/include/magic_enum.hpp index 7a89a84..cffc658 100644 --- a/include/magic_enum.hpp +++ b/include/magic_enum.hpp @@ -33,6 +33,7 @@ #define NEARGYE_MAGIC_ENUM_HPP #include +#include #include #include #include @@ -397,7 +398,11 @@ struct enum_traits>> { } [[nodiscard]] static constexpr E value(std::size_t index) noexcept { - return values[index]; + if constexpr (detail::size_v != detail::count_v) { + return assert(index < count), values[index]; + } else { + return assert(index < count), static_cast(detail::min_v + index); + } } [[nodiscard]] static constexpr std::string_view name(E value) noexcept {