или сделайте это встроенным
##A.hh
template<class T> void func(T t) {}
template<> void func<int>(int t) {}
void func2();
##A.cpp
void func2() {}
##main.cpp
func("hello");
func(int());
учаю сообщение об ошибке: ошибка LNK2005: «void __cdecl func (int)» (?? $ func @ H @@ YAXH @ Z) уже определена в A.obj, найден один или несколько кратно определенных символов
Разве специализация шаблона функции не рассматривается как обычный шаблон функции? Похоже, что это будет в объективном файле для А.