From eb0f0510786b88237593d8687b9967c79ae7e39a Mon Sep 17 00:00:00 2001 From: neargye Date: Mon, 19 Jun 2023 01:25:00 +0400 Subject: [PATCH] add check in enum_flags_name --- include/magic_enum_flags.hpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/include/magic_enum_flags.hpp b/include/magic_enum_flags.hpp index 4dae90e..0f82833 100644 --- a/include/magic_enum_flags.hpp +++ b/include/magic_enum_flags.hpp @@ -57,12 +57,15 @@ template auto check_value = U{0}; for (std::size_t i = 0; i < detail::count_v; ++i) { if (const auto v = static_cast(enum_value(i)); (static_cast(value) & v) != 0) { - check_value |= v; - const auto n = detail::names_v[i]; - if (!name.empty()) { - name.append(1, sep); + if (const auto n = detail::names_v[i]; !n.empty()) { + check_value |= v; + if (!name.empty()) { + name.append(1, sep); + } + name.append(n.data(), n.size()); + } else { + return {}; // Value out of range. } - name.append(n.data(), n.size()); } }