#include <iostream>
#include <utility>
#include <string>
void f(void const* v, std::false_type){
std::cout << "f(void*)\n";
}
void f(std::string const& s, std::true_type){
std::cout << "f(const std::string &)\n";
}
template<typename T>
void f(T&&t){
return f(std::forward<T>(t), std::is_convertible<T,std::string>() );
}
int main() {
f("hello");
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHN0cmluZz4KCiAgICB2b2lkIGYodm9pZCBjb25zdCogdiwgc3RkOjpmYWxzZV90eXBlKXsKICAgICAgc3RkOjpjb3V0IDw8ICJmKHZvaWQqKVxuIjsKICAgIH0KICAgIHZvaWQgZihzdGQ6OnN0cmluZyBjb25zdCYgcywgc3RkOjp0cnVlX3R5cGUpewogICAgICBzdGQ6OmNvdXQgPDwgImYoY29uc3Qgc3RkOjpzdHJpbmcgJilcbiI7CiAgICB9CiAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgdm9pZCBmKFQmJnQpewogICAgICByZXR1cm4gZihzdGQ6OmZvcndhcmQ8VD4odCksIHN0ZDo6aXNfY29udmVydGlibGU8VCxzdGQ6OnN0cmluZz4oKSApOwogICAgfQoKaW50IG1haW4oKSB7CglmKCJoZWxsbyIpOwoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=