##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());
Я получаю следующую ошибку: error LNK2005: "void __cdecl func (int)" ( ?? $ func @ H @@ YAXH @ Z ) уже определено в A.obj, обнаружен один или несколько многократно определенных символов
Специализация шаблона функции не рассматривается как обычный шаблон функции? Похоже, он будет в объективном файле для A.