##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) already defined in A.obj, one or more complex defined symbols found
関数テンプレートの特殊化は、通常の関数テンプレートとして扱われませんか? A の目的のファイルにあるようです。