#include <iostream>
using namespace std;
class Base {};
class Derived : public Base {};
template<typename T>
void doSomething(T t) { cout << "Type!" << endl; }
template<>
void doSomething(Base b) { cout << "Base!" << endl; }
int main() {
Base b;
doSomething(b);
Derived d;
doSomething(d);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCgpjbGFzcyBCYXNlIHt9OwpjbGFzcyBEZXJpdmVkIDogcHVibGljIEJhc2Uge307Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIGRvU29tZXRoaW5nKFQgdCkgeyBjb3V0IDw8ICJUeXBlISIgPDwgZW5kbDsgfQoKdGVtcGxhdGU8Pgp2b2lkIGRvU29tZXRoaW5nKEJhc2UgYikgeyBjb3V0IDw8ICJCYXNlISIgPDwgZW5kbDsgfQoKCgppbnQgbWFpbigpIHsKCUJhc2UgYjsKCWRvU29tZXRoaW5nKGIpOwoJCglEZXJpdmVkIGQ7Cglkb1NvbWV0aGluZyhkKTsKCQoJcmV0dXJuIDA7Cn0=