#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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZW51bSB0eXBlX3QgewogICBpbnRlZ2VyLAogICBvdGhlcgp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IGdldF90eXBlCnsKICAgIHN0YXRpYyBjb25zdGV4cHIgdHlwZV90IHR5cGUgPSBpc19pbnRlZ3JhbDxUPjo6dmFsdWUgPyBpbnRlZ2VyIDogb3RoZXI7Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqIGFyZ3ZbXSkKewogICAgY291dCA8PCBnZXRfdHlwZTxsb25nPjo6dHlwZSA8PCBlbmRsOwogICAgY291dCA8PCBnZXRfdHlwZTxkb3VibGU+Ojp0eXBlIDw8IGVuZGw7Cn0K