Здравствуйте, rg45, Вы писали:
R>Правда первый создает коллизию с двумя другими, но это не важно в данном случае. Главное, что все три выигрывают у специализации. Еще раз подчеркну, при любом объявлении основного шаблона (совместимом с приведенной специализацией, разумеется).
Такое впечатление, что вы не поняли ни вопроса Евгений Музыченко, ни моего ответа на него. Ну или не дочитали...
Суть в том, что вызов f(p); не вызывает функцию template<> void f<>(char* p); даже если используются исключительно шаблонные функции.