Consider this code:
enum CEnum {
V1, V2;
};
enum class CppEnum {
V1, V2;
};
Both std::is_enum<CEnum>::value
and std::is_enum<CppEnum>::value
is true
.
I'm now searching for something like std::is_enum_class<T>::value
to tell them apart.