From 4813c049270dd25e313347ba5468f2fe402943f5 Mon Sep 17 00:00:00 2001 From: neargye Date: Wed, 16 Sep 2020 00:26:01 +0300 Subject: [PATCH] fix #53 --- include/magic_enum.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/magic_enum.hpp b/include/magic_enum.hpp index 4f22747..1988842 100644 --- a/include/magic_enum.hpp +++ b/include/magic_enum.hpp @@ -406,7 +406,15 @@ 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 = ((valid[I] ? std::size_t{1} : std::size_t{0}) + ...); + constexpr std::size_t count = [](decltype((valid)) valid_) constexpr noexcept -> std::size_t { + auto count_ = std::size_t{0}; + for (std::size_t i_ = 0; i_ < valid_.size(); ++i_) { + if (valid_[i_]) { + ++count_; + } + } + return count_; + }(valid); std::array values{}; for (std::size_t i = 0, v = 0; v < count; ++i) {