У меня есть следующий шаблон:перегрузка шаблонных функций для всех типов Струнных
template<class T>
void fn(T t){ }
, и я хотел бы, чтобы переопределить его поведение за все, что может быть превращено в std::string
.
Оба указания явной специализации шаблона и функция перегрузки нешаблонной с параметром как std::string
работать только для вызовов, которые Передавайте std::string
, а не другие функций, так как это, кажется, приведение их в соответствии с шаблоном, прежде чем аргумент преобразование.
Есть ли способ достичь желаемого поведения?