#include <iostream>
using namespace std;
template < class T>
struct Foo{
template < class S>
Foo( S* s) : _t( s) { }
T * _t;
} ;
struct Bar{ } ;
void do_something( Foo< Bar> f) {
cout << "In Foo do something" << endl;
}
// void do_something(std::string f){
// cout<<"In string do something"<<endl;
// }
int main( ) {
const char * string = "string" ;
do_something( string) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8Y2xhc3MgVD4Kc3RydWN0ICBGb297CnRlbXBsYXRlPGNsYXNzIFM+CgpGb28oUyogcyk6X3Qocyl7fQpUICogX3Q7Cn07CgpzdHJ1Y3QgQmFye307Cgp2b2lkIGRvX3NvbWV0aGluZyhGb288QmFyPiBmKXsKCWNvdXQ8PCJJbiBGb28gZG8gc29tZXRoaW5nIjw8ZW5kbDsKfQoKLy8gdm9pZCBkb19zb21ldGhpbmcoc3RkOjpzdHJpbmcgZil7Ci8vIAkJY291dDw8IkluIHN0cmluZyBkbyBzb21ldGhpbmciPDxlbmRsOwoKLy8gfQoKaW50IG1haW4oKSB7Cgljb25zdCBjaGFyICogc3RyaW5nID0gInN0cmluZyI7Cglkb19zb21ldGhpbmcoc3RyaW5nKTsKCXJldHVybiAwOwp9