#include <iostream>
#include <cstdint>
void foo(uint16_t x) {
std::cout << "uint16_t\n";
}
template <class T>
void foo( const T&& t )
{
return foo(uint16_t{t});
}
int main() {
uint16_t x = 1;
uint64_t y = 10000000000000;
foo(x);
foo(y); // goes through
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGludD4KCnZvaWQgZm9vKHVpbnQxNl90IHgpIHsKICAgIHN0ZDo6Y291dCA8PCAidWludDE2X3RcbiI7Cn0KCnRlbXBsYXRlIDxjbGFzcyBUPgp2b2lkIGZvbyggY29uc3QgVCYmIHQgKQp7CiAgICByZXR1cm4gZm9vKHVpbnQxNl90e3R9KTsKfQoKaW50IG1haW4oKSB7CiAgICB1aW50MTZfdCB4ID0gMTsKICAgIHVpbnQ2NF90IHkgPSAxMDAwMDAwMDAwMDAwMDsKICAgIGZvbyh4KTsKICAgIGZvbyh5KTsgLy8gZ29lcyB0aHJvdWdoCn0=