#include <iostream>
template <typename T>
class String
{
//.....
};
template <typename T>
std::ostream & operator<<(std::ostream & os, const T & s)
{
//....
return os;
}
template<>
std::ostream & operator<< <String<int> >(std::ostream & os, const String<int> & s)
{
//......
return os;
}
int main() {
String<int> s;
std::cout << s;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmNsYXNzIFN0cmluZwp7CgkvLy4uLi4uCn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RkOjpvc3RyZWFtICYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJiBvcywgY29uc3QgVCAmIHMpCnsKLy8uLi4uCglyZXR1cm4gb3M7Cn0KCnRlbXBsYXRlPD4Kc3RkOjpvc3RyZWFtICYgb3BlcmF0b3I8PCA8U3RyaW5nPGludD4gPihzdGQ6Om9zdHJlYW0gJiBvcywgY29uc3QgU3RyaW5nPGludD4gJiBzKQp7Ci8vLi4uLi4uCiAgICByZXR1cm4gb3M7Cn0KCmludCBtYWluKCkgewoJU3RyaW5nPGludD4gczsKCQoJc3RkOjpjb3V0IDw8IHM7CglyZXR1cm4gMDsKfQ==