There is no public API to check at compile time whether an enum has is_flags = true. The only options are accessing detail::has_is_flags (internal) or writing a custom SFINAE trait.
Use case
template <typename E>
std::optional<E> generic_enum_cast(std::string_view sv) {
if constexpr (magic_enum::is_flags_v<E>) {
return magic_enum::enum_flags_cast<E>(sv);
} else {
return magic_enum::enum_cast<E>(sv);
}
}
There is no public API to check at compile time whether an enum has
is_flags= true. The only options are accessingdetail::has_is_flags(internal) or writing a custom SFINAE trait.Use case