可能有必要衰减强类型枚举。 怎么做?
答案 0 :(得分:0)
template<typename T, typename U = bool >
struct DecayEnum { using type = T; };
template<typename T>
struct DecayEnum<T, std::enable_if_t<std::is_enum<T>::value, bool> > {
using type = typename std::underlying_type<T>::type;
};
template <typename T>
typename DecayEnum<T>::type EnumIntegralValue(T& value) {
return static_cast<typename DecayEnum<T>::type>(value);
}