enum class abc_t
{
a,
b,
c,
};
enum class tde_t
{
t,
d,
e,
};
//для перебора одного перечисляемого типа
std::string test(abc_t function)
{
switch(function)
{
case abc_t::a: return "a";
// и т.д
}
}
template<typename T>
std::string test(T function)
switch(function)
{
case abc_t::a: return "a";
case tde_t:t return "t";
}