#include <type_traits>
#include <iostream>
template<typename T>
void use_impl(const T&, std::false_type)
{
std::cout << "use_impl(false)" << std::endl;
}
template<typename T>
void use_impl(const T&, std::true_type)
{
std::cout << "use_impl(true)" << std::endl;
}
template<typename T>
void use(const T& v)
{
use_impl(v, typename std::is_integral<T>::type());
}
int main()
{
use(1);
use(1.2);
}
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgojaW5jbHVkZSA8aW9zdHJlYW0+CiAgIAp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIHVzZV9pbXBsKGNvbnN0IFQmLCBzdGQ6OmZhbHNlX3R5cGUpCnsKCXN0ZDo6Y291dCA8PCAidXNlX2ltcGwoZmFsc2UpIiA8PCBzdGQ6OmVuZGw7Cn0KCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnZvaWQgdXNlX2ltcGwoY29uc3QgVCYsIHN0ZDo6dHJ1ZV90eXBlKQp7CglzdGQ6OmNvdXQgPDwgInVzZV9pbXBsKHRydWUpIiA8PCBzdGQ6OmVuZGw7Cn0KCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnZvaWQgdXNlKGNvbnN0IFQmIHYpCnsKICAgdXNlX2ltcGwodiwgdHlwZW5hbWUgc3RkOjppc19pbnRlZ3JhbDxUPjo6dHlwZSgpKTsKfQoKaW50IG1haW4oKQp7CiAgIHVzZSgxKTsKICAgdXNlKDEuMik7Cn0K