#include <string>
#include <iostream>
using namespace std;
template<class T> class foo{
public:
string what();
};
template<> class foo<char>{
public:
string what();
};
template<class T> string foo<T>::what(){
return "foo of type T";
}
template<> string foo<char>::what(){
return "foo of type char";
}
int main(){
foo<int> f;
cout << f.what() << endl;
}