#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);
}
