#include <iostream>
template <class T>
int compare(const T& v1, const T& v2) {
std::cout << "Template version called\n";
return 0;
}
int compare(const char* const& v1, const char* const& v2) {
std::cout << "overloaded version called\n";
return 0;
}
int main()
{
compare ("foo", "bar");
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPGNsYXNzIFQ+CmludCBjb21wYXJlKGNvbnN0IFQmIHYxLCBjb25zdCBUJiB2MikgewogICAgc3RkOjpjb3V0IDw8ICJUZW1wbGF0ZSB2ZXJzaW9uIGNhbGxlZFxuIjsKICAgIHJldHVybiAwOwp9CgppbnQgY29tcGFyZShjb25zdCBjaGFyKiBjb25zdCYgdjEsIGNvbnN0IGNoYXIqIGNvbnN0JiB2MikgewogICAgc3RkOjpjb3V0IDw8ICJvdmVybG9hZGVkIHZlcnNpb24gY2FsbGVkXG4iOwogICAgcmV0dXJuIDA7ICAgIAp9CgppbnQgbWFpbigpCnsKIGNvbXBhcmUgKCJmb28iLCAiYmFyIik7Cn0=