From 9ed98e3463568124588a0e76d980c141f222cb40 Mon Sep 17 00:00:00 2001 From: neargye Date: Mon, 21 Dec 2020 17:52:42 +0200 Subject: [PATCH] fix #69 --- include/magic_enum.hpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/include/magic_enum.hpp b/include/magic_enum.hpp index 902ad15..990c598 100644 --- a/include/magic_enum.hpp +++ b/include/magic_enum.hpp @@ -404,11 +404,23 @@ constexpr E value(std::size_t i) noexcept { } } +template +constexpr std::size_t values_count(const std::array& valid) noexcept { + auto count = std::size_t{0}; + for (std::size_t i = 0; i < valid.size(); ++i) { + if (valid[i]) { + ++count; + } + } + + return count; +} + template constexpr auto values(std::index_sequence) noexcept { static_assert(is_enum_v, "magic_enum::detail::values requires enum type."); constexpr std::array valid{{is_valid(I)>()...}}; - constexpr std::size_t count = (static_cast(valid[I]) + ...); + constexpr std::size_t count = values_count(valid); std::array values{}; for (std::size_t i = 0, v = 0; v < count; ++i) {