#include <type_traits>
#include <string>
#include <iostream>

template<class T>
typename std::enable_if<!std::is_convertible<T, std::string>::value, void>::type
fn(T t)
{
   std::cout << "base" << std::endl;
}

template<class T>
typename std::enable_if<std::is_convertible<T, std::string>::value, void>::type
fn(T t) 
{
   std::cout << "string" << std::endl;
}

int main()
{
   fn("hello");
   fn(std::string("new"));
   fn(1);
}