#include <iostream>
#include <type_traits>

using namespace std;

enum type_t {
   integer,
   other
};

template<typename T>
struct get_type
{
    static constexpr type_t type = is_integral<T>::value ? integer : other;
};

int main(int argc, char * argv[])
{
    cout << get_type<long>::type << endl;
    cout << get_type<double>::type << endl;
}
