Hola; puedes usar la misma forma de llamada para los dos tipos de enum. Te paso un ejemplo:
Código C++:
Ver original#include <iostream>
enum X {a = 1, b};
enum class tipoColumna {
COLUMNA1 = 100,
COLUMNA2,
COLUMNA3,
COLUMNA4 };
template<typename T>
int int_enum_como_int(T t)
{
return static_cast<typename std::underlying_type<T>::type>(t);
}
void f(int i)
{
std::cout << i << '\n';
}
int main()
{
f(int_enum_como_int(tipoColumna::COLUMNA1));
f(int_enum_como_int(a));
}