#include <iostream>
using namespace std;
template <class CharType>
void Foo(const std::basic_string<CharType> &s)
{
cout << s.c_str(); // TODO: Handle cout for wstring!!!
}
void Foo(const char *s)
{
Foo((std::string)s);
}
int main()
{
std::wstring mystr(L"hello");
Foo(mystr);
Foo("world");
Foo(std::string("Im"));
Foo(std::basic_string<char>("so happy"));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPGNsYXNzIENoYXJUeXBlPgp2b2lkIEZvbyhjb25zdCBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyVHlwZT4gJnMpCnsKCWNvdXQgPDwgcy5jX3N0cigpOyAvLyBUT0RPOiBIYW5kbGUgY291dCBmb3Igd3N0cmluZyEhIQp9Cgp2b2lkIEZvbyhjb25zdCBjaGFyICpzKQp7CglGb28oKHN0ZDo6c3RyaW5nKXMpOwp9CgppbnQgbWFpbigpCnsKCXN0ZDo6d3N0cmluZyBteXN0cihMImhlbGxvIik7CglGb28obXlzdHIpOwoKCUZvbygid29ybGQiKTsKICAgCiAgICBGb28oc3RkOjpzdHJpbmcoIkltIikpOwoKCUZvbyhzdGQ6OmJhc2ljX3N0cmluZzxjaGFyPigic28gaGFwcHkiKSk7CgogICAgcmV0dXJuIDA7Cn0=