#include <string>
#include <iostream>
using namespace std;
template<typename T>
T foo() {
T t = {};
return t;
}
template <>
string foo() {
return "foo";
}
template <>
int foo() {
return 177;
}
int main() {
cout << "foo<double>=" << foo<double>() << endl;
cout << "foo<string>=" << foo<string>() << endl;
cout << "foo<int>=" << foo<int>() << endl;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4KVCBmb28oKSB7CiAgICBUIHQgPSB7fTsKICAgIHJldHVybiB0Owp9Cgp0ZW1wbGF0ZSA8PgpzdHJpbmcgZm9vKCkgewoJcmV0dXJuICJmb28iOwp9Cgp0ZW1wbGF0ZSA8PgppbnQgZm9vKCkgewoJcmV0dXJuIDE3NzsKfQoKaW50IG1haW4oKSB7Cgljb3V0IDw8ICJmb288ZG91YmxlPj0iIDw8IGZvbzxkb3VibGU+KCkgPDwgZW5kbDsKCWNvdXQgPDwgImZvbzxzdHJpbmc+PSIgPDwgZm9vPHN0cmluZz4oKSA8PCBlbmRsOwoJY291dCA8PCAiZm9vPGludD49IiA8PCBmb288aW50PigpIDw8IGVuZGw7Cn0=