当作为模板参数传递时,是否有办法区分枚举和枚举类。
在我的课程中,我需要将一个枚举或一个枚举类与一个整数/字节数组进行序列化。现在,对于普通的枚举,我不必严格地来回静态地转换值。我当然是为枚举类做的。*
这是我可以使用的简化示例:
tempate<class TYPE>
class X
{
public:
X()
{
static_assert(std::is_enum<TYPE>, "Only enum and enum class allowed.");
}
TYPE get()
{
// This is the point of interest
if(std::is_enum_class<TYPE>::value)
{
return static_cast<TYPE>(value);
}
else
{
return value;
}
}
private:
int value;
};
我正在考虑是否有一种方法可以沿std :: is_enum区分两者?