#include <type_traits>
template<typename Integer,
std::enable_if_t<std::is_integral<Integer>::value>* = nullptr>
void foo(Integer) {}
template<typename Floating,
std::enable_if_t<std::is_floating_point<Floating>::value>* = nullptr>
void foo(Floating) {}
int main()
{
foo(3);
}
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKdGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdlciwKICAgICAgICAgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludGVncmFsPEludGVnZXI+Ojp2YWx1ZT4qID0gbnVsbHB0cj4Kdm9pZCBmb28oSW50ZWdlcikge30KCnRlbXBsYXRlPHR5cGVuYW1lIEZsb2F0aW5nLAogICAgICAgICBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8RmxvYXRpbmc+Ojp2YWx1ZT4qID0gbnVsbHB0cj4Kdm9pZCBmb28oRmxvYXRpbmcpIHt9CgppbnQgbWFpbigpCnsKICAgIGZvbygzKTsKfQ==