Mam następujący szablon:przeciążeniem Funkcja szablonowe dla wszystkich typów String
template<class T>
void fn(T t){ }
i chciałbym, aby zastąpić jego zachowanie do niczego, które mogą być zamienione na std::string
.
Zarówno określenie jawnej specjalizacji szablonu, jak i przeciążenie funkcji innej niż szablon z parametrem jako std::string
działa tylko w przypadku wywołań, które przechodzą w std::string
, a nie w innych funkcjach, ponieważ wydaje się dopasowywać je do szablonu przed próbą argumentu konwersja.
Czy istnieje sposób na osiągnięcie pożądanego zachowania?