#include <iostream>
#include <type_traits>
template <typename T>
void f (T t) {
if (std::is_same<T, int>::value)
std::cout << "int\n";
else if (std::is_same<T, float>::value)
std::cout << "float\n";
else
std::cout << "generic\n";
}
int main() {
f(5);
f(5.f);
f(5.);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBmIChUIHQpIHsKICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgaW50Pjo6dmFsdWUpCiAgICAgICAgc3RkOjpjb3V0IDw8ICJpbnRcbiI7CiAgICBlbHNlIGlmIChzdGQ6OmlzX3NhbWU8VCwgZmxvYXQ+Ojp2YWx1ZSkKICAgICAgICBzdGQ6OmNvdXQgPDwgImZsb2F0XG4iOwogICAgZWxzZSAKICAgICAgICBzdGQ6OmNvdXQgPDwgImdlbmVyaWNcbiI7Cn0KCmludCBtYWluKCkgewogICAgZig1KTsKICAgIGYoNS5mKTsKICAgIGYoNS4pOwp9